我希望通过直接引用插件项目和实例化插件类来测试一个插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,我在引用列表中的引用旁边得到了一个警告图标(带有感叹号的黄色三角形)。

当我改为添加对dll(插件的程序集构建输出)的引用时,我没有得到这样的警告。这个警告想告诉我什么?


当前回答

得到这个讨厌的黄色三角形的原因之一是你添加了一个引用到一个项目两次,这意味着:

参考一:MyProjectOne(它已经包含了对MyProjectTwo的参考) 参考资料二:MyProjectTwo

通过删除Reference 2,黄色三角形将消失。

其他回答

在ASP上遇到了同样的问题。Net Web App和两个需要在Web App中引用的库类项目。我没有提供关于为什么构建失败和引用无效的信息。

解决方案是确保所有项目都有相同的目标框架:

在Visual Studio 2015中右键单击项目>属性>应用程序>目标框架

保存,清洁和重建解决方案。项目引用将不再显示为黄色警告,解决方案将被编译。

我的Web应用程序的目标是。net 4.5,而其他两个依赖库类项目的目标是。net v4.5.2

这个问题已经问了很长时间了,但如果有人仍然感兴趣的话——我最近遇到了类似的图标。我正在用vs2008编译一个c# .net项目。我发现VS无法为这些引用定位程序集。当我双击VS时,刷新了引用并删除了其中一些图标[编辑:它现在可以定位]。对于其余的引用,我必须编译各自的程序集。

确保项目的目标是相同的框架版本。大多数情况下,原因可能是当前项目(其中您正在添加另一个项目的引用)指向的。net框架版本与其他版本不同。

找到.csprojc文件并打开它。

找到您的包路径。我通过这个问题修正了我的项目。

..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll

这个. .意味着vs将在父目录中找到这个DLL。

您应该确认您的包路径,并且您将修复此问题。

对于您想一起使用的两个(或所有)项目:

右键单击项目>属性>应用>目标。net框架

确保两个(或所有)项目都使用相同的. net框架版本。