将 EF Core 添加到 NET Standard 项目会引入与其他项目中的 NuGet 包不兼容的可传递依赖项版本
我有一个包含多个 .NET Standard 2.0 项目的解决方案。
一个项目 A使用Google.Protobuf (3.11.2)
NuGet 包,这取决于
System.Memory (4.5.3)
System.Buffers (4.4.0)
System.Numerics.Vectors (4.4.0)
System.Runtime.CompilerServices.Unsafe (4.5.2)
Run Code Online (Sandbox Code Playgroud)
其他一些项目也依赖System.Memory
并且都使用相同的依赖版本。
另一个项目 B使用Microsoft.EntityFrameworkCore (3.1.0)
依赖于的 NuGet 包
System.Memory (4.5.3)
System.Buffers (4.5.0)
System.Numerics.Vectors (4.5.0)
System.Runtime.CompilerServices.Unsafe (4.7.0)
Run Code Online (Sandbox Code Playgroud)
即使System.Memory
版本是在两种情况下(4.5.3),这取决于System.Buffers
,System.Numerics.Vectors
并System.Runtime.CompilerServices.Unsafe
和他们的版本不同。
当我运行使用这些项目的应用程序(使用 Unity IoC 的 Microsoft Prism WPF .NET Framework 4.8 应用程序)时,UnityContainer 会引发以下异常:
System.IO.FileLoadException: '无法加载文件或程序集 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 …
c# prism unity-container visual-studio entity-framework-core