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

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


当前回答

根据@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>

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

其他回答

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

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

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

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

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

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

我在一个针对。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文件添加到根目录,并删除了子文件夹。这样做本来也可以解决这个问题。