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

当我改为添加对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>

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

其他回答

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

Update-Package -Reinstall

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

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

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

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

找到.csprojc文件并打开它。

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

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

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

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

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