使用WiX将dll安装到gac

问题描述 投票:0回答:2

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

wix windows-installer gac
2个回答
1
投票

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中注册程序集。


0
投票

如果我只知道图书馆...除了Chris Painter的答案之外,让我记下一些快速选项:


NuGet:Seems to be a NuGet package here?

Dark.exe:您还可以使用WiX工具包及其dark.exe二进制文件来反编译现有的MSI,然后调整它并编译新的MSI。所需的WiX标记清理并非易事,但可以做到。训练有素的打包者当然可以做到。 WiX Quick Start Tips

GAC:安装到GAC需要有问题的strong name for the assembly(签名)(more on strong naming)然后您只需将Assembly属性设置为".net",如Painter在其答案中所解释的:

    <File Source="MyFile.dll" KeyPath="yes" Assembly=".net" />

一些链接:也许快速阅读这些链接。

© www.soinside.com 2019 - 2024. All rights reserved.