【发布时间】:2011-11-24 11:48:49
【问题描述】:
我有一个“项目 A”,它使用 CopyLocal=TRue 引用 System.Web.Mvc。 System.Web.Mvc 在我的本地机器和构建服务器上都在 GAC 中。
我还有一个“项目 B”,它在“项目 B”的输出中引用了“项目 A”,而 System.Web.Mvc 在构建期间没有被复制到。
我怀疑这是因为它在 GAC 中。 这是真的? 我可以做些什么让 MSBuild 将其复制到输出文件夹吗?
我在此线程中阅读了 Muse VsExtensions 的答案,其中仅讨论了对 GAC 的直接引用,但是我们通过“项目 A”进行了间接引用: .NET Reference "Copy Local" True / False Being Set Based on Contents of GAC
这篇博文也相关: http://deeperdesign.wordpress.com/2010/02/08/msbuild-assembly-dependencies-and-the-gac/
【问题讨论】:
-
有趣的是,即使您的项目引用了不在 GAC 中的程序集副本,这似乎也会发生。 VS 发现 GAC 中存在副本,因此不会复制它。
-
假设是正确的。将 MSBuild 详细程度设置为诊断会在解析依赖项时提供
This reference is not "CopyLocal" because it's registered in the GAC.。
标签: msbuild gac msbuild-projectreference