繁体   English   中英

Visual Studio 2012:无法引用项目

[英]Visual Studio 2012: Project cannot be referenced

我们开发了一个包含VS 2010的约35个项目的大型解决方案,现在我们正在考虑迁移到VS 2012 Ultimate。 我将解决方案文件转换为VS 2012,一般来说,一切正常。

但每当我打开解决方案时,我都会对解决方案中的某个项目A发出一些警告:“项目X无法引用”“项目Y无法引用”......其中A有项目引用X和Y.当我构建解决方案时,我得到的错误是找不到每个相应DLL的元数据。

当我查看解决方案资源管理器中的引用时,它们会标有黄色警告符号。 只要我点击参考,警告就会消失,图标看起来很正常。 然后我可以毫无错误地构建!

每次打开解决方案时都会出现问题,受影响的项目始终相同。

有没有人经历过这种奇怪的行为? 删除和添加项目引用再次没有帮助...

先感谢您。

编辑:我检查了引用项目的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版本,特别是如果它们相互引用的话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM