首页 > 解决方案 > 在 .netcore 中使用同一个 nuget 包的多个版本

问题描述

我有 3 个项目AB以及CwhereABis.netcore class libraryCis WPF (.netcore)

在项目A Pomelo.EntityFrameworkCore.MySql中安装了一个 nuget packge,它依赖于Microsoft.EntityFrameworkCore.Relational (>= 3.1.0)

并且在项目B Oracle.EntityFrameworkCore中安装了依赖于Microsoft.EntityFrameworkCore.Relational (>= 2.1.11 && < 3.0.0)

两个项目都在项目AB引用,C但由于两个项目都依赖于相同的程序集不同版本,因此无法编译。

我也遵循了本指南,但由于其中没有App.config.netcore它不适合我。

这是github上的演示项目

标签: c#visual-studio.net-corecompiler-errors.net-assembly

解决方案


这里

绑定重定向是一个 .NET 框架概念,在 .NET Standard 和 .NET Core 上没有绑定重定向。

您的 package1 ( Pomelo.EntityFrameworkCore.MySql) 清楚地表明它需要 v3.1.0 或更高版本的某些程序集才能正常工作。package2 ( Oracle.EntityFrameworkCore) 表示如果同一程序集的版本为 3.0.0 或更高版本,它将不起作用。

通过强制您的应用程序使用一个版本的包(程序集重定向),您将破坏其中一个包。你想杀哪个?通过从您的应用程序中删除它来手动杀死它:)

您是否尝试使用Pomelo.EntityFrameworkCore.MySql v.2.2.6- 它需要 Microsoft.EntityFrameworkCore.Relational (>= 2.2.6) ?


推荐阅读