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

Rus*_*ark 2 .net dll gac wix

我发现,通过将KeyPath =“ yes”和Assembly =“。net”添加到Wix XML文件中的DLL组件中,在构建安装程序并运行它之后,它确实会安装我指定的DLL。将这些属性添加到GAC中。它还会将它们安装到我的本地程序文件夹中。我当时假设,如果将它们安装到GAC,则无需在程序文件夹中也包含它们。是否在两个位置都有DLL是一个问题,如果存在,是否有办法防止将它们安装到程序文件夹中?

Rob*_*ing 5

我无法复制您看到的内容。如果我创建一个其中只有一个的MSI,Component如下所示:

<Component Directory="SomeFolderUnderProgramFiles">
   <File Source="path\to\my\strongnamedsigned.dll" Assembly=".net" KeyPath="yes" />
</Component> 
Run Code Online (Sandbox Code Playgroud)

然后,我只能进入"strongnamedsigned.dll"GAC。我的目录树(植根于ProgramFilesFolder)根本没有创建。

您是否可能在.wxs文件中某个文件的另一个副本中没有该Assembly=".net"属性的地方?这样做没有任何问题(智能驾驶室甚至可以插入并保持您的机柜尺寸很小),但是最好了解导致文件安装在两个位置的原因。