2

我发现通过将 KeyPath="yes" 和 Assembly=".net" 添加到我的 Wix XML 文件中的 DLL 组件,在我构建安装程序并运行它之后,它确实安装了我指定的 DLL将这些属性纳入 GAC。它还仍然将它们安装到我的本地程序文件夹中。我假设如果它们被安装到 GAC,那么就不需要在程序文件夹中也有它们。在这两个位置都有 DLL 是否有问题,如果是,有没有办法阻止它们安装到程序文件夹中?

4

1 回答 1

5

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

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

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

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

于 2013-05-03T16:54:28.270 回答