检测到的包降级:Microsoft.NETCore.App从2.1.3升级到2.1.0

ant*_*ant 24 .net c# nuget .net-core

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

错误NU1605检测到包降级:Microsoft.NETCore.App从2.1.3升级到2.1.0.直接从项目引用包以选择不同的版本.

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

我怎么处理这个?

UPD: dotnet --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
Run Code Online (Sandbox Code Playgroud)

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

<RuntimeIdentifier>win7-x64</RuntimeIdentifier>

可以相关吗?

小智 31

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

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

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • @SteveSmith:`&lt;PropertyGroup&gt; &lt;TargetFramework&gt; xxx &lt;/TargetFramework&gt; &lt;TargetLatestRuntimePatch&gt;true&lt;/TargetLatestRuntimePatch&gt; &lt;/PropertyGroup&gt;` (4认同)
  • 您将其添加到文件中的什么位置? (2认同)

h-r*_*rai 11

我的csproj文件缺少版本。

添加版本解决了该问题。

在此处输入图片说明

  • 这将改变行为。这样你就不再需要前滚了,微软推荐的方法是使用无版本的 Microsoft.AspNetCore.App 并将 SDK 置于顶部“&lt;Project Sdk="Microsoft.NET.Sdk.Web"&gt;” (4认同)

xfx*_*xfx 6

在添加对 的引用后,我刚刚遇到了同样的问题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" />
Run Code Online (Sandbox Code Playgroud)