【问题标题】:Wix installer puts DLLs into the GAC and the program folderWix 安装程序将 DLL 放入 GAC 和程序文件夹
【发布时间】:2013-04-28 01:55:06
【问题描述】:

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

【问题讨论】:

  • @Rob Mensching - 感谢您的帖子。我用 Dark 对我的 .wxs 文件进行了逆向工程,它为我的每个 DLL 包含了一个 AssemblyManifest 和 AssemblyApplication 条目。当我删除这些属性(就像您在下面的代码中所拥有的)时,它只会将 DLLS 安装到 GAC 中。我认为这对我来说会很好。
  • 是的,这些属性会阻止安装到 GAC。

标签: .net dll wix gac


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多