我遇到了一个非常奇怪的问题,我想了解发生了什么。 我有一个包含30个项目的解决方案,除了其中一个项目之外它一切正常。 该项目依赖于同一解决方案中的另一个项目。添加一个Project引用,在编辑器中看起来很好(没有红线等)但是在编译时我得到了编译器错误,好像引用不存在一样。但是,如果我直接在项目生成的DLL上添加引用,那么它可以正常工作。我仔细检查,并在两种情况下它引用完全相同的DLL。为什么它不能作为项目参考? 欢迎任何想法!
答案 0 :(得分:3)
项目构建顺序是一个很难解决的问题,而MSBuild肯定会丢球。问题中没有任何内容可以帮助我们找到根本原因。
简单的解决方案是帮助MSBuild并明确它。右键单击未正确构建的项目,然后选择“项目依赖项”。勾选需要先建立的那些。另请注意同一对话框中的Build Order选项卡,它会显示项目的构建顺序。确保它现在是一个快乐的订单。
另请注意,在技术上可以创建循环依赖项。这并不简单,它需要逐步更改项目并添加对现有DLL的引用。换句话说,你做了什么,不应该做什么:)你用Build + Clean诊断它,并且再也没有成功构建解决方案。
答案 1 :(得分:0)
当我遇到这样的问题时,我通常会用两件事中的一件来修复它们......
答案 2 :(得分:0)
您可能没有引用所述DLL的最新版本。直接DLL引用不会强制重建该DLL,但项目引用将会。有时VS不会清楚地报告依赖DLL构建错误,因此很可能是DLL的最新代码中存在错误,而您链接的代码是旧错误。尝试查看输出窗口(而不是错误列表),详细了解它不会构建的原因。
答案 3 :(得分:0)
我建议编辑项目文件并查看每个引用实际指向的内容。另外,检查配置管理器并确保“问题”。在为您正在构建的特定平台\配置构建时,正在包含项目。 '
答案 4 :(得分:0)
两个项目都在同一个解决方案中?如果是,您可能需要检查它们的构建顺序,确保引用它的构建顺序在引用它之前构建。此外,MSBuild中还有一个错误,这可能会解决您的问题:solution to MSBuild error
答案 5 :(得分:0)
项目名称与文件夹名称不同。 当使用它作为项目参考时,不确定它与此有关,但重命名项目文件夹修复了问题。