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

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


当前回答

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

其他回答

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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