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

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


当前回答

找到.csprojc文件并打开它。

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

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

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

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

其他回答

在@kad81的答案上加上我的2点意见,

进入Visual Studio -> BUILD ->配置管理器

在右上角的“主动解决方案平台”下拉菜单中(我的是VS 2012),如果它是“混合平台”,根据您参考的第三方程序集将其更改为适当的平台。

然后在列表中的每个项目中,确保为所有项目选择相同的平台。(如果x86不存在,则选择“”,则可以选择“x86”。)

首先重新构建库项目,然后再引用项目。 希望这能有所帮助。

我有这些图标是出于不同的原因。对于我们所有的项目(近100个),我们都有一个大的解决方案。我对我感兴趣的项目进行了子选择,并制定了新的解决方案。然而,引用的项目引用而不是引用编译dll的....

经过一些研究,我在GitHub上找到了这个链接,解释了这是VS2015中的新行为。

在GitHub页面上,他们解释了一个将项目引用转换为二进制引用的变通方法。

如果你使用的是新风格的Sdk项目,将OutputType添加到ProjectGroup元素中,在你引用的项目中,它的值为Library。 如果它在你引用的项目中,并且它引用了一个没有设置的项目,它也会给你带来麻烦。

谢谢大家的帮助。以下是我解决这个问题的方法:

右键单击项目> Properties

在应用程序下更改目标框架。在我的例子中,ImageSharp使用的是。net 4.6.1。您可以在packages.config中找到它。

去找你的项目参考资料。你会注意到sixlabour有一个黄色三角形。你必须更新NuGet包。

右键单击引用>管理NuGet包。

更新SixLabors。

你可能有轻微的代码更新(见下文),但这解决了我的问题。

ImageSharp进行转换。Image到ImageSharp.PixelFormats.Rgba32?

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

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

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