我希望通过直接引用插件项目和实例化插件类来测试一个插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,我在引用列表中的引用旁边得到了一个警告图标(带有感叹号的黄色三角形)。
当我改为添加对dll(插件的程序集构建输出)的引用时,我没有得到这样的警告。这个警告想告诉我什么?
我希望通过直接引用插件项目和实例化插件类来测试一个插件的核心类。当我创建一个测试控制台应用程序项目并向插件项目添加一个项目引用时,我在引用列表中的引用旁边得到了一个警告图标(带有感叹号的黄色三角形)。
当我改为添加对dll(插件的程序集构建输出)的引用时,我没有得到这样的警告。这个警告想告诉我什么?
当前回答
在@kad81的答案上加上我的2点意见,
进入Visual Studio -> BUILD ->配置管理器
在右上角的“主动解决方案平台”下拉菜单中(我的是VS 2012),如果它是“混合平台”,根据您参考的第三方程序集将其更改为适当的平台。
然后在列表中的每个项目中,确保为所有项目选择相同的平台。(如果x86不存在,则选择“”,则可以选择“x86”。)
首先重新构建库项目,然后再引用项目。 希望这能有所帮助。
其他回答
在Asp.net核心中,如果您更改了项目名称空间或名称,有时会显示警报。要删除这种类型的警报,您只需卸载项目,并再次加载它。 如果问题仍然存在,意味着您无法找到您的程序集参考。
我在一个针对。net Core 3.1、。net Standard 2.0和。net Framework 4.8的项目中遇到了同样的问题。问题是最后一个。
为我解决这个问题的技巧是将目标框架改为。net framework 4.5,然后再改为。net framework 4.8。
我完全不知道为什么这解决了问题,但它确实解决了问题。
IDE是Visual Studio 2019。
根据@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,黄色三角形将消失。
正如问题评论中提到的,项目之间不同的. net框架版本会导致这种情况。检查新项目的属性,以确保没有使用不同的默认版本。