AspNetCore中的版本冲突

11
我有一个Asp.Net Core 2 Mvc项目,我目前正在尝试将数据访问分离到另一个项目中; 但是,只要我添加对数据访问库的引用,我就会出现版本冲突错误:
错误NU1107:检测到Microsoft.AspNetCore.Cryptography.Internal的版本冲突。直接从项目中引用该软件包可解决此问题。
错误NU1107:MySite.Web-> MySite.DataAccess-> Microsoft.Extensions.Identity.Stores 2.1.1->Microsoft.Extensions.Identity.Core 2.1.1-> Microsoft.AspNetCore.Cryptography.KeyDerivation 2.1.1-> Microsoft.AspNetCore.Cryptography.Internal(>=2.1.1)
错误NU1107:MySite.Web -> Microsoft.AspNetCore.App 2.1.0-> Microsoft.AspNetCore.Cryptography.Internal (= 2.1.0)。
我曾尝试引用entity framework identity代替,但它出现了相同的错误,只是身份验证库不同而已。
我想以下这行代码是非常重要的建议:
直接从项目中引用该软件包可解决此问题。
但是,我不确定这意味着什么。我的初步想法是在MySite.Web项目中引用该软件包,但指定版本为2.1.0;但是当我这样做时,我被无限制地重定向回到这个库。
5个回答

13

导致这种情况发生的原因是您本地安装的 Microsoft.AspNetCore.App 版本为2.1.0,而不是2.1.1。

要更新它,您需要安装最新的SDK/runtime。

您可以在 https://dot.net 上找到它。
只需转到“下载”并下载 2.1 SDK(v2.1.301),其中包括最新的2.1.1运行时。

希望能对您有所帮助!


1
你需要安装特定版本,例如:如果你的.NET Core是2.2,则只需要安装Entity Framework 2.2,否则需要更新你的.NET Core版本,但对于Visual Studio 2017,仅可用.NET Core 2.2而非更高版本,因此你需要根据你的.NET Core版本为Visual Studio 2017安装相应的版本。
请查看以下两个屏幕截图以供参考。

enter image description here

enter image description here


1
在我的情况下,我已更新了一个项目以使用Microsoft.Extensions.Identity v3.0,这导致错误 - 检测到Microsoft.AspNetCore.Cryptography.Internal的版本冲突。这个错误消息并不直观,但是将所引用的项目回滚到Microsoft.Extensions.Identity 2.2可以解决问题。

0

尝试更新SDK

如果有未安装的包或不兼容的包

请尝试从您的主项目的.csproj文件更改版本

<PropertyGroup>
   <TargetFramework>
netcoreapp2.1
</TargetFramework>
 </PropertyGroup>

-1

删除冲突的引用,然后重试

Click Here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接