相关疑难解决方法(0)

无法在两个 NET Standard 项目中合并 NuGet 包可传递依赖项版本

将 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.BuffersSystem.Numerics.VectorsSystem.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

9
推荐指数
1
解决办法
2378
查看次数

.NET Standard 2.0 中的 Microsoft.AspNet.Identity 和 Microsoft.AspNet.Identity.EntityFramework

背景:我们正在开展的项目由多个共享两个库的解决方案组成。一切都写在.NET Framework 4.6.1今天。该项目的目标是采用.NET Core新项目并能够在Docker.

随着新版本的发布.NET Standard 2.1以及.NET Framework 4.8将保留.NET Standard 2.0而不是实施的事实,.NET Standard 2.1感觉是开始的合适时机。微软的 Immo Landwerth 说:

但同样正确的是 .NET Framework 的创新速度必须放慢以减少损坏。从这个意义上说,您通常应该期望大多数新功能只会在 .NET Core(以及派生平台,例如 Xamarin、Mono 和 Unity,因为它们从与 .NET Core 相同的源构建)上可用。

https://blogs.msdn.microsoft.com/dotnet/2018/11/05/annoucing-net-standard-2-1/

我们希望能够访问新项目中的新功能,但不想将每个旧项目都转换为.NET Core. 为了保持.NET Framework.NET Core我们之间的兼容性,我们决定将我们的共享库转换为.NET Standard 2.0.

https://docs.microsoft.com/en-us/dotnet/standard/net-standard

除了以下依赖项之外,这非常有效:

1. System.Net.Http.WebRequestHandler - 已解决

用于像这样的客户端证书:

WebRequestHandler requestHandler = new WebRequestHandler();

//Add certificate if setting exists
if (!string.IsNullOrEmpty(pushEvent?.CertificateThumbprint?.Thumbprint))
{ …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net .net-standard .net-standard-2.0

6
推荐指数
1
解决办法
2286
查看次数