首页 > 解决方案 > 使用 WiX 将 dll 安装到 gac

问题描述

我需要将 Microsoft Practices 企业库安装到生产服务器上的 GAC 中。我已经阅读了无数的文章,这些文章说明了做到这一点的方法是使用 wix 创建一个 msi,但我一生都无法弄清楚它是如何完成的。有没有办法创建一个引用企业库并将其安装到 gac 的简单应用程序?不需要安装其他任何东西。

标签: wixwindows-installergac

解决方案


IsWiX 将 GlobalParams.dll 安装到 GAC。你可以在这里找到源代码:

https://github.com/iswix-llc/iswix/blob/master/Installer/IsWiXNewAddInMM/IsWiXNewAddInMMcustom.wxs

 <DirectoryRef Id="TARGETDIR">
      <Directory Id="GlobalAssemblyCache" Name="GlobalAssemblyCache">
        <Component Id="globalparams" Guid="{B07FF430-AAB4-49E6-8035-60142942F325}" Permanent="yes">
          <File Id="globalparams" Source="..\Deploy\IsWiXNewAddIn\GlobalParams.dll" KeyPath="yes" Assembly=".net"/>
        </Component>
      </Directory>
    </DirectoryRef>

我记得,目录 ID 并不重要。Windows 安装程序在 GAC 方面不使用这些。诀窍是 1) DLL 必须有一个强名称 2) Assembly=".net" 属性将填充正确的 MSIAssembly 表,以便 MSI 将使用 MsiPublishAssemblies 操作与 fusion 交互并在正确的 GAC 中注册程序集。


推荐阅读