为啥在 Visual Studio 中构建失败,因为它无法从引用的程序集中解析命名空间?
Posted
技术标签:
【中文标题】为啥在 Visual Studio 中构建失败,因为它无法从引用的程序集中解析命名空间?【英文标题】:Why is the build failing in Visual Studio because it cannot resolve namespaces from referenced assemblies?为什么在 Visual Studio 中构建失败,因为它无法从引用的程序集中解析命名空间? 【发布时间】:2011-07-26 21:03:19 【问题描述】:我有 3 个类库项目。我们称它们为 A、B 和 C。我已将 A 和 B 的 project reference
添加到项目 C 中。
A 和 B 正在构建,没有任何错误或警告。
C 项目的代码(类文件)使用 A 和 B 的公共类。当我在 C 中添加项目引用并查看 C 项目中的类文件(在构建项目 C 之前)时,我可以清楚地看到 A 和 B 中的所有类和命名空间都已解析。 当我将鼠标悬停在类名(A 或 B 中的类)上时,它也会显示它的正确命名空间。
我在两个项目引用上都将Copy Local
属性设置为True
。
然而,
-
当我运行 Rebuild All(或在项目 C 上构建)时,构建失败,因为它无法解析命名空间!我可以进一步检查什么以确保一切正常?
我从来没有发现A & B 的程序集被复制到项目C 的
bin\debug
文件夹中。为什么它没有复制引用? (我已经看到了几个关于这个问题的问题,但提供给他们的解决方案都没有为我工作)
【问题讨论】:
【参考方案1】:问题解决了。问题是项目 C 的目标是“.NET 4 Client profile”框架,而 A、B 的目标是“.NET 4”框架。当我更改 C 的目标框架时,一切都构建成功。
“注册用户”发布到this question 的答案对我有帮助。
【讨论】:
太好了,现在我不必写完那个答案了。 :-) @Cody Gray:感谢您花时间查看问题并编辑问题!【参考方案2】:检查每个项目是否使用相同的目标框架。例如,如果其中一个项目使用 .Net Framework 4 Client Profile 而其余项目使用 .Net Framework 4(不是 Client Profile),您可能会遇到这种错误
【讨论】:
在我的例子中,一个 v4.5.1 项目试图引用一个 v4.5.2 并且无法构建。以上是关于为啥在 Visual Studio 中构建失败,因为它无法从引用的程序集中解析命名空间?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Visual Studio 2010 (msbuild?) 构建速度不快?
如何确定为啥 Visual Studio 在构建解决方案时可能会跳过项目
在 Visual Studio 2013 中编译失败时如何跳过构建后事件