繁体   English   中英

已使用 '.NETFramework,Version=v4.6.1' 而不是项目目标框架 ' 恢复

[英]was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '

我正在尝试引用一个 nuget 包,它显然是.NetStandard2.0 我们拥有此包的源代码并将其写入目标 .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>

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

我遇到了一个类似的问题,我通过 Azure Artifacts 发布我自己的 NetStandard2.0 包,然后尝试在 netcore 应用程序中使用它。

结果发现问题在于我将我的包命名为与现有 NuGet 包相同的名称。 我的 Azure Artifacts nuget 提要在 Visual Studio 中正确配置,但是当它尝试安装包时,它首先尝试默认的 NuGet 提要,然后选择另一个(恰好是 NetFramework 提要)而不是我的。

一旦我将我的包重命名为唯一的(我刚刚添加了我自己的命名空间)并重新发布,它一切正常。

我想这可能不是每个人的问题,但对我来说是。

您必须使用项目中与 .NETCoreApp,Version=v2.0 兼容的每个包。

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

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

我也遇到了这个问题。 在我的例子中,当 DLL 被打包并放置在lib/文件夹中时,出现了导入警告。 通过将打包lib/netstandard2.0 DLL放在lib/netstandard2.0文件夹中解决了。

我有同样的问题。 要解决这个问题

  1. 在依赖项/包下查看 VS2019。
  2. 然后寻找旁边带有警告标志的包裹。
  3. 转到您的windows配置文件目录并删除.nuget下的相应文件夹
  4. 删除依赖项/包下的引用
  5. 通过 Manage Nuget Packages 添加 Nuget 包以获取解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM