【问题标题】:Package X is not compatible with netstandard2.0包 X 与 netstandard2.0 不兼容
【发布时间】:2018-01-28 18:32:18
【问题描述】:

我在 Visual Studio 2017 v15.3.1 中创建了一个 .NET Standard v2.0 项目,但无法在其中安装“Microsoft.EntityFrameworkCore 2.0.0”包(通过 Nuget 4.3)。以前安装了 2.0.0 的 .NET SDK 和 Runtime。

我得到的错误遵循这种模式: “包 X 与 netstandard2.0 (.NETStandard,Version=v2.0) 不兼容。” (即 System.Reflection.TypeExtensions 4.1.0)。

可能是什么导致了这些错误?

编辑:我将通过一个示例显示确切的警告和错误(太多了)。

正在为 [.csproj 路径] 恢复包...

警告:

包“System.Collections 4.3.0”是使用“.NETFramework,Version=v4.6.1”项目目标框架“.NETStandard,Version=v2.0”恢复的。这可能会导致兼容性问题。

...

错误:

Package Remotion.Linq 2.1.1 与 netstandard2.0 (.NETStandard,Version=v2.0) 不兼容。包 Remotion.Linq 2.1.1 支持:

  • net35 (.NETFramework,Version=v3.5)
  • net40 (.NETFramework,Version=v4.0)
  • net45 (.NETFramework,Version=v4.5)
  • netstandard1.0 (.NETStandard,Version=v1.0)
  • portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259)

...

恢复包时出错。恢复“ClassLibrary1”的包更改。

经过的时间:00:00:02.4689637

==========结束==========

【问题讨论】:

  • System.Reflection.TypeExtensions 4.1.0 不起作用,它太旧了。您将需要 4.4 版
  • 问题已编辑,有确切错误。 @DavidG 为什么它采用与 .net 标准 2.0 不兼容的软件包?
  • 你在这里安装了一些奇怪的包。 Remotion.Linq 是什么?这不是标准库的一部分。
  • 其实是来自Microsoft.EntityFrameworkCore的依赖,不过貌似需要老版本的。
  • 糟糕,我错过了。不过还是很奇怪,您是否尝试过创建一个新项目?

标签: visual-studio-2017 entity-framework-core .net-standard-2.0


【解决方案1】:

问题解决了为每个显示错误的包的依赖项独立安装较新版本,以便最终安装大包“Microsoft.EntityFrameworkCore 2.0.0”。

希望对你有帮助。

已编辑:另一次发生在我身上并尝试了更快的解决方案。关键是从包的管理器配置中删除 Nuget 的缓存。

【讨论】:

  • 对我有用的是使用 Visual Studio 中的包管理器控制台而不是项目的管理器包工具来安装。
  • 你如何删除 nugets 缓存?是通过使用 dotnet nuget locals all –clear
【解决方案2】:

单击“清除所有 Nuget 缓存”将解决问题。

【讨论】:

    猜你喜欢
    • 2021-05-14
    • 2019-06-06
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2016-08-22
    相关资源
    最近更新 更多