Обнаруженное понижение пакета: Microsoft.NETCore.App с 2.1.3 до 2.1.0
Я пытаюсь обновить свое.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>
Это может быть связано?
Ответы
Ответ 1
У меня была с тобой аналогичная проблема. Не удалось опубликовать мой проект, когда я указал идентификатор времени выполнения.
Решение, которое я получил, это добавить следующую строку в *.csproj
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
После того, как эта строка была добавлена, проект будет опубликован правильно.
Следующая ссылка ссылается на проблему с понижением до 2.1.1 и 2.1.0, но решение работает одинаково.
https://github.com/dotnet/cli/issues/9624
Ответ 2
У меня отсутствовала версия в файле csproj.
Добавление версии устранило проблему.
Ответ 3
После обновления .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.
Ответ 4
У меня тоже был этот вопрос. В конечном итоге я решил удалить.NET SDK 2.1.3 с панели управления "Программы". Или я в основном должен был удалить любые более поздние версии связанных библиотек SDK, которые мой проект пытался использовать.
Ответ 5
Моя версия этой проблемы (я думаю) была вызвана сочетанием реальных версий .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!
Ответ 6
У меня также возникла эта проблема после установки новой версии.Net Core (от 2.0 до 2.1). Нижеследующая ссылка дала мне намек на то, что вызвало проблему.
https://github.com/dotnet/cli/issues/9433
Решением для меня было изменение проекта Target Framework до последней установленной версии.Net Core.
Project Properties > Application > Target Framework
Ответ 7
для меня версия отсутствует в файле .cproj
добавленная версия исправлена для меня. после этого я опубликовал для цели: win-64