Обнаружено понижение пакета: Microsoft.NETCore.App с 2.1.3 до 2.1.0 - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь обновить свое решение .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. Ссылка на пакет прямо из проекта, чтобы выбрать другую версию.

И я вижу, что некоторые из моих проектов действительно имеют ссылку SDK на Microsoft.NETCore.App v2.1.0 и некоторые из них 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

UPD: Каким-то образом проблема исчезнет, ​​если я удалю эту строку из файла .csproj:

<RuntimeIdentifier>win7-x64</RuntimeIdentifier>

Может ли это быть связано?

Ответы [ 6 ]

0 голосов
/ 07 мая 2019

Моя версия этой проблемы (я думаю) была вызвана сочетанием реальных версий .NET Core, установленных на сервере сборки Jenkins вместе с проектом Unit Test, имеющим неоднозначные ссылки.

Я понимаю, что в идеальном случае 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!

0 голосов
/ 13 февраля 2019

У меня отсутствовала версия в файле csproj.

Добавление версии исправило проблему.

enter image description here

0 голосов
/ 22 января 2019

После обновления .net core SDK на моем компьютере с Windows с .net core 2.1.0 до .net core 2.2.0 у меня возникла та же проблема. Мне не удалось собрать проект, и я получил ошибку сборки при обнаружении понижения пакета: Microsoft.AspNetCore.Razor.Design с 2.2.0 до 2.1.0.

Я решил эту проблему, обновив пакет nuget для Microsoft.AspNetCore.Razor.Design

0 голосов
/ 17 сентября 2018

У меня также была эта проблема после установки новой версии .Net Core (2.0 до 2.1). Ниже ссылка дала мне подсказку о том, что вызвало проблему.

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

Решением для меня было изменить Target Framework проекта до последней установленной версии .Net Core.

Project Properties > Application > Target Framework
0 голосов
/ 30 августа 2018

У меня тоже была эта проблема. Что в конечном итоге исправило это для меня, так это удаление .NET SDK 2.1.3 из панели управления «Программы». Или мне пришлось удалить более поздние версии связанных библиотек SDK, которые пытался использовать мой проект.

0 голосов
/ 30 августа 2018

У меня была похожая проблема с вами. Не удалось опубликовать мой проект, когда я указал идентификатор времени выполнения.

Решение, которое я получил, заключалось в добавлении следующей строки к * .csproj

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

После добавления этой строки проект будет опубликован правильно.

Приведенная ниже ссылка ссылается на проблему понижения версии 2.1.1 до 2.1.0, но решение работало так же.

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

...