如何在Wix安装项目中引用GAC的dll文件?

时间:2011-03-17 19:01:34

标签: wix installation

我们在开发机器上有几个GAC的第三方控件。这些在Visual Studio项目中引用。当我们使用VS安装项目时,它知道如何查找引用的文件并将它们包含在MSI中。但是,我无法弄清楚如何在我们新的WIX设置中包含来自GAc的引用DLL文件。我把什么作为来源?

<File Id="MyFile" Name="MyFile" Source="WHAT TO PUT HERE?" DiskId="1" Vital="yes" KeyPath="no"/>

也是一个额外的问题:如何通过加热或其他方式自动收获?

2 个答案:

答案 0 :(得分:6)

对两者的简短回答:你不能也不应该。您应该将工具检入源控制系统,并从结帐中将其加载到安装程序中。这样您就可以控制正在分发的版本,而不是从GAC中获取任意版本。

注意:DiskId和Vital都默认为您提供的值,因此您可以省略一些输入。

答案 1 :(得分:1)

不幸的是,有known bug in Heat阻止它在收获项目时复制引用的程序集。

除了这个问题,并考虑到@Bob Arnson对此问题的回答,您可以在引用的程序集上设置CopyLocal属性,以便在构建时将它们从GAC复制到项目输出目录中。然后你可以使用Heat的目录收集(而不是有缺陷的项目收获)将它们包含在构建中。