.net 已使用';还原;。NETFramework,版本=v4.6.1';而不是项目目标框架';

.net 已使用';还原;。NETFramework,版本=v4.6.1';而不是项目目标框架';,.net,.net-core,nuget,.net-standard,.net,.net Core,Nuget,.net Standard,我试图引用一个nuget包,它显然是.NetStandard2.0。我们拥有这个包的源代码,并将其写入target.netstandard。我们确实有一个CI管道,因此当我们推送此代码时,它会构建并发布nuget包。当我尝试将生成的nuget包引用到当前的.netCore应用程序中时,出现以下错误: 是使用“.NETFramework,版本=v4.6.1”而不是项目目标框架“.NETCoreApp,版本=v2.1”还原的。此软件包可能与您的项目不完全兼容。 这对我来说毫无意义。到目前为止,我已经

我试图引用一个nuget包,它显然是
.NetStandard2.0
。我们拥有这个包的源代码,并将其写入target.netstandard。我们确实有一个CI管道,因此当我们推送此代码时,它会构建并发布nuget包。当我尝试将生成的nuget包引用到当前的.netCore应用程序中时,出现以下错误:

是使用“.NETFramework,版本=v4.6.1”而不是项目目标框架“.NETCoreApp,版本=v2.1”还原的。此软件包可能与您的项目不完全兼容。

这对我来说毫无意义。到目前为止,我已经尝试了以下调试步骤:

  • 直接引用源代码作为对我的项目的项目引用。这一切都很好
  • dotpeek
    中分析生成的nuget包,以确保它实际上是一个.netstandard包,并且是
不知道是什么让它认为它在任何时候都是目标。下面是我的.csproj配置的样子

netstandard2.0


不确定是否有任何其他配置块在这里重要,但如果您需要更多信息,请告诉我。有什么想法吗?

您必须使用项目中与.NETCoreApp,Version=v2.0兼容的所有软件包

错误消息中“was”之前应该有一些包名。例如:

Package 'Microsoft.AspNet.WebApi.Client 5.2.2' was restored
Package 'EntityFramework 6.2.0' was restored 

我遇到了一个类似的问题,当时我正在通过Azure工件发布我自己的NetStandard2.0包,然后试图在netcore应用程序中使用它

事实证明,问题在于我将我的包命名为与现有NuGet包相同的名称。我的Azure Artifacts nuget feed在Visual Studio中配置正确,但当它尝试安装包时,它会首先尝试默认的nuget feed,然后选择另一个(碰巧仅限于NetFramework),而不是我的

一旦我将我的包重命名为唯一(我只是添加了自己的名称空间)并重新发布,它就可以正常工作了


我想这可能不是每个人的问题,但对我来说是。我也遇到了这个问题。在我的例子中,当DLL被打包并放在
lib/
文件夹中时,出现了导入警告。通过将打包的DLL放在
lib/netstandard2.0
文件夹中解决了这个问题。

我也遇到了同样的问题。要解决这个问题

  • 查看VS2019中的依赖项/包
  • 然后寻找旁边有警告标志的包裹
  • 转到windows配置文件目录并删除.nuget下的相应文件夹
  • 删除依赖项/包下的引用
  • 通过Manage Nuget Packages for solution添加Nuget包

  • 该包是为.NetStandard 2.0生成的。我们有了代码,我们根据
    NetStandard2.0
    Hi@Lost构建了它,你有没有找到这个问题的根源?我也有同样的问题…@cedd不幸地不记得了,但有一个问题你试过TomP下面提到的吗?确保您的包名实际上是唯一的?有时它可能会在解析你的包之前解析来自central nuget提要的包。谢谢@lost,我已经检查过了,很遗憾它已经是独一无二的了。我目前正在使用带有.nuspec文件的dotnetpack,因此我将尝试使用带有.csproj文件的dotnetpack,看看这是否有帮助。