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

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


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


正如问题评论中提到的,项目之间不同的. net框架版本会导致这种情况。检查新项目的属性,以确保没有使用不同的默认版本。


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

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

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

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

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


重新安装当前解决方案所有项目中的所有包:

Update-Package -Reinstall

检查所引用的dll的NETFramework &您正在添加dll的项目。 例: DLL ==> supportedRuntime version="v4.0" Project ==> supportedRuntime version="v3.0"

你会得到警告图标。 解决方案:使dll版本一致。


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

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

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

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

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


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

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

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


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

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

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


确保每个项目的所有版本都是相同的,单击每个项目并在这里查看版本,项目>属性>应用>目标。net框架 a.进入工具> Nuget包管理器>包管理器控制台类型更新-包-重新安装(如果不工作,请执行2.b) 这很关键,但也是可行的最大可能性。删除< Target >可能有多行< /Target >通常在.csproj的底部。 保存、加载和构建解决方案。


要修复一些不工作的东西,它有意义,删除一些库有时,怎么听起来不奇怪。

无论如何,我认为这个问题太广泛了,可能是由不同的因素引起的,所以想分享我的情况/解决方案。

我有一个项目(由客户带来)使用Xamarin Forms和Telerik库。这件事通常与组件有关,这些库不包含在packages文件夹中,也不能通过Nuget(付费的)获得。

整个项目的参考资料都是“黄色”的,看起来可怕而可怕。

解决方案就是删除那些Telerik引用(包括代码中使用它的一些控件)。在那之后,所有的引用都神奇地变成了它们共同的正常灰色,错误(大部分)消失了。

“大部分”-因为“周围都是红色”错误消息“元素在任何地方都没有定义”有时仍然会发生。这很奇怪,也带来了不便,但我仍然能够编译和运行项目:只需要清理解决方案,重新启动Visual Studio,祈祷一下,再次清理,删除obj/bin文件夹,重新启动,它工作得很好。

关键是删除不可用的库引用,因为错误消息绝对是另一回事。(例如,像“Xamarin.Build.Download”这样的内容。XamarinDownloadArchives not found或不能找到一些东西”等等,但这可能只是意味着您没有一些可用的引用。

然后删除包文件夹,重新加载/重新打开项目/解决方案,进入“管理Nuget包”,单击“恢复”按钮。


在Asp.net核心中,如果您更改了项目名称空间或名称,有时会显示警报。要删除这种类型的警报,您只需卸载项目,并再次加载它。 如果问题仍然存在,意味着您无法找到您的程序集参考。


对我来说,在. net Framework 4.7.1控制台应用程序中引用. net Standard 2.0类库时遇到了这个问题。是的,框架是不同的,但是它们是兼容的。NET标准应该与。NET核心和。NET框架相结合。)我试着清理、重建、删除和阅读项目参考资料,等等……但没有成功。最后,退出Visual Studio并重新开放解决了这个问题。


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


试着关闭和打开VS。

看起来很傻,但在遵循上述1小时后,发现一切都很好。我重启了VS 2017,问题都解决了。


我也遇到了同样的问题,但我的情况与上面的情况有点不同。我试图打开在另一台计算机上创建的项目。我发现当你添加引用时,包文件夹的路径没有更新,所以重新启动VS,改变. net版本,或任何提到的建议都不能解决问题。我在notepad++中打开了csproj文件,并更正了packages文件夹的所有相对路径。然后;所有的警告都消失了。希望能有所帮助。


在VS 2017中进行清洁然后构建


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

右键单击项目> Properties

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

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

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

更新SixLabors。

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

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


在Visual Studio 2019中,我的一个项目的目标框架是。net core,但它引用了另一个项目的目标框架是。net标准。我把所有的项目都改成了。net标准,图标也消失了。要查看您的项目是什么,右键单击它,然后单击属性,然后查看目标框架。您也可以正常单击项目本身,并查看< PropertyGroup >下的< TargetFramework >标签


在所有针对.Net Core 3.1的项目中使用Visual Studio 2019,解决方案是:

清洁/建造/重建。 重启Visual Studio 2019


在一个多项目的解决方案中,如果其他事情都失败了……在startUp项目中,检查。 依赖项->程序集,并查看错误的引用项目是否在那里。移除它,重新构建。


我在一个针对。net Core 3.1、。net Standard 2.0和。net Framework 4.8的项目中遇到了同样的问题。问题是最后一个。

为我解决这个问题的技巧是将目标框架改为。net framework 4.5,然后再改为。net framework 4.8。

我完全不知道为什么这解决了问题,但它确实解决了问题。

IDE是Visual Studio 2019。


我已经创建了一个新的。sln,并将其放在子文件夹中。添加.sln文件的地方丢失了.nuget文件夹。移动。nuget文件夹从根到子文件夹,我的新。sln文件解决了我的问题。

我稍后回来,将.sln文件添加到根目录,并删除了子文件夹。这样做本来也可以解决这个问题。


根据@AljohnYamaro的回答(抱歉,无法评论你的答案,新帐户还没有足够的声誉,但投票给你),我检查了.csproj文件。

在我的文件中,除了标准的项目参考资料之外:

<ProjectReference Include="..\ProjectA\ProjectA.csproj">
    <Private>true</Private>
    <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
</ProjectReference>

还有一个直接链接到引用项目的编译dll:

<ItemGroup>
    <Reference Include="ProjectA">
    <HintPath>..\ProjectA\bin\Debug\netcoreapp3.1\ProjectA.dll</HintPath>
    </Reference>
</ItemGroup>

删除第二个引用就解决了这个问题。


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

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

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


如果显式引用已经隐式引用的项目,也会发生这种情况。

i.e

项目a引用项目b 项目c引用项目a(添加隐式引用。展开查看) 项目c引用项目b

您将在项目引用下的b旁边看到一个感叹号。


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


打开YOURPROJECT。用文本编辑器编辑Csproj文件,然后在文件末尾删除目标标记内的这些行,然后再次构建项目! 确保Package文件夹在< Reference > < HintPath >中提到的正确路径

<Error Condition="!Exists('.......

好好享受吧!)


找到.csprojc文件并打开它。

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

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

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

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


一个更简单的答案:退出visual studio并重新打开它,它已经解决了我的问题。