我正在尝试引用一个明显为.NetStandard2.0
的nuget程序包。我们拥有此程序包的源代码,并将其编写为目标.netstandard。我们确实有一个CI管道,因此当我们推送此代码时,它将构建并释放nuget包。当我尝试将生成的nuget包引用到当前的.netCore应用程序中时,出现以下错误:
was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.1'. This package may not be fully compatible with your project.
这对我来说没有任何意义。到目前为止,我已经尝试了以下调试步骤:
dotpeek
中生成的nuget软件包,以确保它实际上是.netstandard软件包。 不确定是什么使它认为它随时都在瞄准。下面是我的.csproj配置的样子
<TargetFramework>netstandard2.0</TargetFramework>
不确定这里是否有其他配置块很重要,但是如果您需要更多信息,请告诉我。有什么想法吗?
答案 0 :(得分:1)
您必须使用项目中与.NETCoreApp,Version = v2.0兼容的所有软件包。
错误消息中的“是”之前应该有一些软件包名称。例如:
Package 'Microsoft.AspNet.WebApi.Client 5.2.2' was restored
Package 'EntityFramework 6.2.0' was restored
答案 1 :(得分:0)
我遇到了一个类似的问题,即我通过Azure Artifacts发布了自己的NetStandard2.0程序包,然后尝试在netcore应用程序中使用它。
事实证明,问题在于我将我的软件包命名为与现有NuGet软件包相同的名称。我的Azure Artifacts nuget提要在Visual Studio中已正确配置,但是当它尝试安装包时,它会首先尝试默认的NuGet提要,然后选择另一个(恰好是NetFramework)而不是我的。
一旦我将包重命名为唯一的(我刚刚添加了自己的名称空间)并重新发布,一切都可以正常工作。
我想这可能不是每个人的问题,而是我自己。
答案 2 :(得分:0)
我也遇到了这个问题。就我而言,将DLL打包并放置在lib/
文件夹中时,就会发生导入警告。通过将打包的DLL放在lib/netstandard2.0
文件夹中即可解决。
答案 3 :(得分:0)
我有同样的问题。要解决此问题