Wix安装程序将DLL放入GAC和程序文件夹

问题描述:

我发现通过将KeyPath =“yes”和Assembly =“。net”添加到我的Wix XML文件中的DLL组件,即在构建安装程序后,并运行它,它的确将我用这些属性指定的DLL安装到GAC中。它还将它们安装到我的本地程序文件夹中。我假设如果将它们安装到GAC中,则不需要将它们放在程序文件夹中。是否在这两个位置的DLL都有问题,如果是这样,是否有办法阻止他们安装到程序文件夹中?Wix安装程序将DLL放入GAC和程序文件夹

+0

@Rob Mensching - 谢谢你的帖子。我已经使用Dark对我的.wxs文件进行了逆向工程,并且为每个DLL都包含了AssemblyManifest和AssemblyApplication条目。当我删除这些属性(如下面的代码中的内容)时,它只将DLLS安装到GAC中。我认为这对我来说很好。 – 2013-05-03 18:19:27

+0

是的,这些属性将阻止安装到GAC。 – 2013-05-03 22:17:02

我无法重现您所看到的内容。如果我创建只有一个Component它看起来像一个MSI:

<Component Directory="SomeFolderUnderProgramFiles"> 
    <File Source="path\to\my\strongnamedsigned.dll" Assembly=".net" KeyPath="yes" /> 
</Component> 

然后我只得到在GAC中"strongnamedsigned.dll"。我的目录树(根源于ProgramFilesFolder)根本没有被创建。

您是否可能在您的.wxs文件的某个位置没有Assembly=".net"属性的文件的另一个副本?这样做没有任何问题(智能控制柜甚至可以启动并保持机柜尺寸较小),但理解在两个地方安装文件的原因很有用。