有人设法安装Microsoft.Identity.Web并在ASP.NET Core2.1上运行吗?
我有很多ASP.NET Core2.1API项目,因为它们必须提到针对.NET 4.7.2的DLL。这些应用程序使用Azure作为身份验证,我最近尝试了几个小时升级到Microsoft.Identity.Web,但没有成功。这取决于Microsoft.Extensions.* 5.0或更高版本。它会导致Kestrel在启动后立即抛出一个错误:
'Microsoft.Extensions.Primitives.InplaceStringBuilder‘:无法从程序集'Microsoft.Extensions.Primitives,Version=5.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60’加载类型的Microsoft.Extensions.Primitives。 在Microsoft.Net.Http.Headers.DateTimeFormatter.ToRfc1123String(DateTimeOffset dateTime,布尔引号) (按Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.DateHeaderValueManager.SetDateValues(DateTimeOffset值计算) 在Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.CreateServiceContext(IOptions
1 options, ILoggerFactory loggerFactory) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer..ctor(IOptions1 options,ITransportFactory transportFactory,ILoggerFactory loggerFactory)
似乎是运行Kestrel所需的方法删除 (当Extentions.Primitive变为5.0时)。有什么解决办法吗?
补充说明(13/Oct/21):
由于Microsoft.Extensions.Primitives没有显式安装,所以它没有显示在Nuget包列表中,因此不可能降级。如果我尝试显式安装老版本(如2.1.6 ),它会拒绝使用以下错误:
NU1605:检测到的软件包降级: Microsoft.Extensions.Primitives从5.0.0降到2.1.6。直接从项目中引用包以选择不同的版本。test21 -> Microsoft.Identity.Web 1.18.0 -> Microsoft.Extensions.Caching.Memory 5.0.0 -> Microsoft.Extensions.Primitives (>= 5.0.0) test21 -> Microsoft.Extensions.Primitives (>= 2.1.6)
发布于 2021-10-12 02:46:08
您可以通过Microsoft.Extensions.Primitives将包从5.0.0降到2.1.0,以解决错误。
通过使用NuGet包管理器。您可以选择包的任何可用版本并更新它。
如果在Visual中使用NuGet管理器(接口),则可以在安装或更新之前查看包依赖关系。
发布于 2021-10-12 13:49:38
我当时正在开发一个ASP.NET核心WebAPI2.1。当我尝试使用微软的身份时,我也遇到了类似的问题。如前所述,Microsoft.Identity.Web在Version = 5.0.0上依赖于Microsoft.Extensions.Primitives。我能够解决这个问题,方法是将这个包从Microsoft.Extensions.Configuration.Abstractions版本5.0.0降到2.1.0,也可以将Microsoft.Extensions.Primitives降级到2.1.0 (这取决于这一点),但您也可以尝试其他版本,如果错误没有occur.Then,您可以对microsoft进行同样的尝试。当您执行此操作时,保存并关闭并再次启动应用程序。
其他工作
https://stackoverflow.com/questions/69522776
复制相似问题