繁体   English   中英

检测到 package 降级:Microsoft.NETCore.App 从 2.1.3 到 2.1.0

[英]Detected package downgrade: Microsoft.NETCore.App from 2.1.3 to 2.1.0

我尝试将我的 .net 解决方案从 .NET Core 1.1 更新到 .NET Core 2.1。 我里面有几个 .NET 核心和 .NET 标准项目,它们相互引用并引用另一个 NuGet 包。 更新“do.net resore”和“do.net build”命令后工作正常,但是当我尝试从 visual studio 构建我的解决方案时,出现此错误:

错误 NU1605 检测到 package 降级:Microsoft.NETCore.App 从 2.1.3 到 2.1.0。 直接从项目引用 package 到 select 一个不同的版本。

我看到我的一些项目确实有 SDK 对 Microsoft.NETCore.App v2.1.0 的引用,其中一些是 v.2.1.3。 设置 RuntimeFrameworkVersion 并将此 package 添加到依赖项中显式不起作用。

我该如何处理?

UPD: do.net --info:

.NET Core SDK (reflecting any global.json):  Version:   2.1.401  Commit:    91b1c13032

Runtime Environment:  OS Name:     Windows  OS Version:  10.0.17134  OS Platform: Windows  RID:         win10-x64  Base Path:   C:\Program Files\dotnet\sdk\2.1.401\

Host (useful for support):   Version: 2.1.3   Commit:  124038c13e

.NET Core SDKs installed:
  1.1.10 [C:\Program Files\dotnet\sdk]
  2.0.0 [C:\Program Files\dotnet\sdk]
  2.1.4 [C:\Program Files\dotnet\sdk]
  2.1.100 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.400 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:   Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]   Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]   Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]   Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]   Microsoft.NETCore.App
1.0.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 1.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 2.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]   Microsoft.NETCore.App
2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:   https://aka.ms/dotnet-download

UPD:如果我从 .csproj 文件中删除此行,问题就会以某种方式消失:

<RuntimeIdentifier>win7-x64</RuntimeIdentifier>

能有关系吗?

我和你有类似的问题。 指定运行时标识符时无法发布我的项目。

我开始工作的解决方案是将以下行添加到 *.csproj

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

添加该行后,项目将正确发布。

以下链接引用了 2.1.1 和 2.1.0 之间的降级问题,但解决方案的工作原理相同。

https://github.com/dotnet/cli/issues/9624

我在 csproj 文件中缺少一个版本。

添加版本解决了这个问题。

在此处输入图片说明

在我的 Windows 机器上将 .net core SDK 从 .net core 2.1.0 更新到 .net core 2.2.0 后,我遇到了同样的问题。 我无法构建项目,并在检测到包降级时出现构建错误:Microsoft.AspNetCore.Razor.Design 从 2.2.0 到 2.1.0。

我已经通过更新 Microsoft.AspNetCore.Razor.Design 的 nuget 包解决了这个问题

在添加对MySQL.Data的引用后,我刚刚遇到了同样的问题。

唯一的解决方案是在 .csproj 文件中明确定义受影响引用的版本:

<PackageReference Include="System.Diagnostics.Debug" Version="4.3.0" />
<PackageReference Include="System.Runtime.Extensions" Version="4.3.0" />
<PackageReference Include="System.Globalization" Version="4.3.0" />
<PackageReference Include="System.Threading" Version="4.3.0" />
<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />

我也有这个问题。 最终为我修复的是从“程序”控制面板卸载 .NET SDK 2.1.3。 或者我基本上不得不卸载我的项目试图使用的任何更高版本的相关 SDK 库。

我的这个问题版本(我认为)是由安装在 Jenkins 构建服务器上的实际 .NET Core 版本与具有模糊引用的单元测试项目的组合引起的。

我知道,在理想的世界中,dotnet 不希望在 csproj 中声明 AspNetCore 的版本 - 在构建过程中提供最大的灵活性:

<PackageReference Include="Microsoft.AspNetCore.App" />

但是,在构建服务器上编译主项目时(第一次),它选择使用 2.1.6 作为 AspNetCore 版本。 然后它尝试编译测试项目,并且该项目的最低版本为“2.1.1”,因此构建过程会尝试降级,然后在构建失败时中止构建。

我从测试项目中删除了“2.1.1”最低版本,但随后测试项目不会在本地构建,因为它无法明确解决依赖关系。 在多次 NuGet 包升级/降级之后没有任何乐趣,所以选择强制“2.1.6”最低版本以便与构建服务器保持一致。

这仍然无法在本地正确解析所有依赖项,最终也强制使用 NetCore 的最低版本:

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.6" />
<PackageReference Include="Microsoft.NetCore.App" Version="2.1.6" />

现在一切都在本地和 Jenkins 构建服务器上构建!

安装新版本的 .Net Core(2.0 到 2.1)后,我也遇到了这个问题。 下面的链接给了我一个导致问题的提示。

https://github.com/dotnet/cli/issues/9433

我的解决方案是将项目的目标框架更改为最新安装的 .Net Core 版本。

Project Properties > Application > Target Framework

对于未来的读者。

一大早,我的代码就在构建中。

然后我开始收到此错误:

Error   NU1605  Detected package downgrade: Microsoft.Extensions.Logging from 3.1.1 to 2.1.1. Reference the package directly from the project to select a different version.

我在 2 个程序集 csprojs 上得到了它。

MyCompany.MyProject.SomeLibraryONE 
MyCompany.MyProject.SomeLibraryTWO

所以当然,我开始追踪“Microsoft.Extensions.Logging”。

但后来我想起了“今天早上它起作用了”,我回溯了我的变化。

我发现了一个新包(nuget import)添加进来

MyCompany.MyProject.SomeLibraryTHREE

(一和二引用了三)

这是“新”行:

<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.1" />

所以我看了又看,但这是导入“Microsoft.Extensions.Http”包的唯一地方。

做什么?

从记忆中,我只是记得我有很多“3.1.0”包导入,但没有 3.1.1。

其他包导入的示例(例如):

<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" />

长话短说………………我更改了新的包导入(新导入是我的代码损坏的主要嫌疑人)……并将其更改为与“3.1 .0 世界”。

所以我现在有了这个。

<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.0" />

现在一切正常。

因此,(实际)错误可能是实际发生的事情的红鲱鱼。

希望您正在使用源代码控制,并且可以“反向”执行它。

只是为了完成这个......这是奇怪的部分:

\.nuget\packages\microsoft.extensions.http\3.1.1\lib\netcoreapp3.1\Microsoft.Extensions.Http.dll

我打开了这个文件。

它引用了

// Microsoft.Extensions.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
    // Assembly reference loading information:
    // Info: Success - Loading from: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\3.1.0\Microsoft.Extensions.Logging.dll

不是,它是“3.1.0\\Microsoft.Extensions.Logging.dll”。 那么它是什么破东西???? (谁知道?)

所以虽然这对我来说没有意义..............我上面展示的确实解决了这个问题。

去搞清楚。

希望能帮助某人。

我在 .NET 5 上,看起来这个错误仍然存​​在。

问题:无法将 EntityFramework 包从 5.0.5 更新到 5.0.8。

使固定:

  1. 我发现的一种快速解决方法是从“解决方案”>“引用”>“包”中删除所选包(在我的情况下为 5.0.5 版)的所有包引用。 右键单击并删除每个。

  2. 现在转到 nuget 包管理器并再次添加这些相同的包(现在版本将是 5.0.8)。

  3. 建造

我有一个非常相似的错误,解决方案是将其添加到 my.csproj

<ItemGroup>
    <PackageReference Include="Microsoft.NETCore.Targets" Version="3.0.0" PrivateAssets="all" />
</ItemGroup>

我尝试了2.1.1的版本,它对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM