我希望通过直接引用插件项目和实例化插件类来测试一个插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,我在引用列表中的引用旁边得到了一个警告图标(带有感叹号的黄色三角形)。
当我改为添加对dll(插件的程序集构建输出)的引用时,我没有得到这样的警告。这个警告想告诉我什么?
我希望通过直接引用插件项目和实例化插件类来测试一个插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,我在引用列表中的引用旁边得到了一个警告图标(带有感叹号的黄色三角形)。
当我改为添加对dll(插件的程序集构建输出)的引用时,我没有得到这样的警告。这个警告想告诉我什么?
当前回答
对我来说,在. net Framework 4.7.1控制台应用程序中引用. net Standard 2.0类库时遇到了这个问题。是的,框架是不同的,但是它们是兼容的。NET标准应该与。NET核心和。NET框架相结合。)我试着清理、重建、删除和阅读项目参考资料,等等……但没有成功。最后,退出Visual Studio并重新开放解决了这个问题。
其他回答
如果显式引用已经隐式引用的项目,也会发生这种情况。
i.e
项目a引用项目b 项目c引用项目a(添加隐式引用。展开查看) 项目c引用项目b
您将在项目引用下的b旁边看到一个感叹号。
根据@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>
删除第二个引用就解决了这个问题。
正如问题评论中提到的,项目之间不同的. net框架版本会导致这种情况。检查新项目的属性,以确保没有使用不同的默认版本。
检查所引用的dll的NETFramework &您正在添加dll的项目。 例: DLL ==> supportedRuntime version="v4.0" Project ==> supportedRuntime version="v3.0"
你会得到警告图标。 解决方案:使dll版本一致。
确保项目的目标是相同的框架版本。大多数情况下,原因可能是当前项目(其中您正在添加另一个项目的引用)指向的。net框架版本与其他版本不同。