【发布时间】:2009-02-05 14:53:40
【问题描述】:
我们如何才能使 .NET 项目的构建过程 (Dev Studio 2005) 完全独立于运行它的特定机器上的 GAC 上安装的内容。
这是我们试图解决的问题:根据碰巧安装到 GAC 中的程序集,我们的构建过程会在输出目录中生成不同的 .NET 程序集,然后我们使用这些程序集来构建 .MSI
这大概是因为 dev studio 假设,因为它安装在 GAC 中,所以它不应该作为我们产品的一部分安装。
我们希望禁用此行为,以便我们的项目直接或间接引用的所有 .NET 程序集都被复制到项目的输出目录中(.NET 2.0 运行时标准程序集除外)。
对于 直接 程序集引用,我知道设置“Copy Local=True”可以做到这一点。
但是,这不适用于间接程序集引用。
即我们的一个项目引用了一个名为“A.dll”的程序集,该程序集依赖于另一个名为“B.dll”的程序集,该程序集与“A.dll”位于同一目录中。在 GAC 中未安装“B.dll”的机器上,A.dll 和 B.dll 都将复制到 Dev studio 构建过程中的输出目录。这就是我们想要的。
但是在将 B.dll 安装到 GAC 的机器上,即使 A.dll 的“Copy Local = True”,B.dll 也不会被复制到输出目录中。
【问题讨论】:
-
我遇到了相反的问题。我的构建框在 gac 中没有任何内容,所以太多内容正在发布到我的 Web 应用程序
标签: .net visual-studio-2005 gac