无法引用Visual Studio 2012:项目
本文关键字:2012 项目 Studio Visual 引用 | 更新日期: 2023-09-27 18:01:16
我们在VS 2010上开发了一个包含35个项目的大型解决方案,现在我们正在考虑迁移到VS 2012 Ultimate。我将解决方案文件转换为VS 2012,一般情况下,一切正常。
但是每当我打开解决方案时,我就会得到解决方案中某个项目a的一些警告:"无法引用项目X"无法引用项目Y"...其中A有对X和Y的项目引用。当我构建解决方案时,我得到的错误是无法找到每个DLL的元数据。
当我在解决方案资源管理器中查看引用时,它们被标记为黄色警告符号。只要我简单地点击引用,警告就会消失,图标看起来正常。然后我可以构建没有错误!
每次打开解决方案都会出现这个问题,受影响的项目总是相同的。
还有人经历过这种奇怪的行为吗?再次删除和添加项目引用没有帮助…
提前谢谢你。
EDIT:我检查了参考项目的csproj文件,我想知道所有有上述问题的项目参考guid都是小写的,其他项目都是大写的。
<ProjectReference Include="..'Presentation.Net'Presentation.Net.csproj">
<Project>{04004c6b-76c8-4f2d-9fcf-5a866bb80fd4}</Project>
<Name>CMS.Presentation.Net</Name>
</ProjectReference>
在解决方案中,guid是大写的:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation.Net", "Presentation.Net'Presentation.Net.csproj", "{04004C6B-76C8-4F2D-9FCF-5A866BB80FD4}"
任何想法?
VS 2012放弃了对一些旧项目类型的支持。并不是所有的VS 2010项目类型都支持VS 2012。例如,MSI安装项目类型已被InstallShield LE项目类型所取代。检查这里的兼容性列表,看看是否有任何失败的项目类型是一个问题。
这给我指明了正确的方向。Visual Studio 2012随机报告:"所引用的组件X无法找到"
至少警告消失了。必须检查元数据错误是否会再次发生
当我遇到这个问题时,这是由于项目之间的。net版本不同。您需要确保您尝试引用的项目具有与当前项目兼容的。net版本。
例如,如果你的目标项目是。net 4.5.2,而你引用的项目是4.6,你可能会得到这个错误,因为被引用的项目正在使用你当前项目无法访问的组件。
要解决这个问题,只需转到目标项目的属性并选择正确的。net兼容版本。对于我的解决方案中的所有项目,我为每个项目维护相同的。net版本,特别是当它们相互引用时。
尝试清理项目/解决方案,然后再构建。