Подтвердить что ты не робот

Обнаруженное предупреждение о понижении пакетов (ядро dotnet, против 2017)

Я только что обновил все мои пакеты nuget для своего решения (проект ядра dotnet core 1.1).

Теперь я получаю следующие предупреждения, и я не знаю, что они означают.

NETStandard.Library downgrade warning


Обновление: Я все еще получаю предупреждения, упомянутые выше. Мои веб-проекты предупреждают о пакете Microsoft.NETCore.App(см. Снимок экрана ниже), а мои проекты lib предупреждают о NETStandard.Library(см. Скриншот выше)

Предупреждение о снижении Microsoft.NETCore.App

При попытке обновить Microsoft.NETCore.App в диспетчере пакетов NuGet я получаю следующую ошибку:

Ошибка обновления NuGet

Надеюсь, кто-то может помочь мне избавиться от этих предупреждений и настроить все, что он предназначен, поэтому я могу обновить все свои пакеты.

Спасибо заранее!

4b9b3361

Ответ 1

Согласно ответу выше, рабочее решение должно удалить следующую строку из вашего файла csproj.

Проект веб-приложения:

<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>

Lib проект:

<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>

Ответ 2

В моем случае ни одно из этих свойств не было установлено в моих файлах csproj.

Мне пришлось сказать VS, чтобы обновить эти пакеты через NuGet.

Предупреждения появились для меня после разрешения предупреждения для явной ссылки на неявную зависимость .NETCore.App после перехода с 1.0 на 1.1.

ОБНОВЛЕНИЕ 21/09/17

Это также, похоже, влияет на обновления до 2.0, разрешение остается тем же. Обновите эти пакеты вручную с помощью NuGet. Спасибо IbrarMumtaz за указание на это!

Ответ 3

Мне удалось избавиться от этих предупреждений в моем проекте, удалив элемент <NetStandardImplicitPackageVersion> из файла csproj.

Вот некоторая информация в этой статье о неявных метапакетах, которая, кажется, является основной причиной этой проблемы.

Вам также может потребоваться обновить некоторые зависимости. Например, мне пришлось обновить BenchmarkDotNet от 0.10.1 до 0.10.3, чтобы избавиться от нескольких предупреждений, подобных тем, которые вы видите.

Ответ 4

Эта ситуация возникла у меня после открытия существующего решения, но вместо предупреждений это были Ошибки.

Я открыл файл YourAwesomeApp.csproj и один раз пропустил ошибки "Обнаруженный пакет вниз" и вручную изменил версию этой позиции из существующей версии на указанную версию, которая была показана в самой ошибке.

Например, если в Error указано, что пониженный уровень обнаружен "SqlServer 1.0.4 → 1.0.3", найдите строку для пакета SqlServer и отредактируйте версию с 1.0.3 до 1.0.4.

Эти ошибки должны исчезнуть после создания проекта.

Недостатком этого является то, что на этот раз у меня было всего 5 ошибок, но что, если в проекте другого человека содержится 50 таких ошибок. Тогда задача этого человека вручную отредактировать эти строки будет очень утомительной и трудоемкой.

Ответ 5

Мне удалось исправить некоторые ошибки, такие как добавление NoWarn в cproj

<Project Sdk="Microsoft.NET.Sdk">

 <PropertyGroup>
    <NoWarn>$(NoWarn);NU1605</NoWarn>
  </PropertyGroup>

...
</Project>

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

Ответ 6

Попробуйте удалить:

<IsPackable>false</IsPackable>

из вашего файла проекта - это то, что работает для меня!

Если у вас все еще NU1605 код ошибки NU1605 вы можете проигнорировать его, добавив следующее в файл проекта:

<PropertyGroup>
    <NoWarn>NU1605</NoWarn>
</PropertyGroup>

Ответ 7

Вручную удаление зависимостей пакетов nuget из проекта и Install-Package для каждого из них устранило проблему в моем случае.

Ответ 8

Попробуйте использовать NuGet

Я получаю:

ошибка NU1605: Обнаружено понижение пакета: System.Net.NameResolution с 4.3.0 до 4.0.0. Ссылка на упакованный напрямую из проекта, чтобы выбрать другую версию.

Поэтому я сослался на каталог пакета, запустив (в папке проекта):

dotnet add package System.Net.NameResolution

Посмотреть ошибки NuGet - NU1605

Выпуск:

Пакет зависимостей указал ограничение версии для более высокой версии пакета, чем восстановление, которое в конечном итоге разрешено. То есть из-за правила "ближайших выигрышей" при разрешении пакетов более близкий пакет в графе мог переопределить удаленный пакет.

Решение:

Добавьте прямую ссылку на проект для более высокой версии пакета, который вы хотите использовать.

Ответ 9

В моем случае эта ошибка была связана не с .NET Core, а с .NET Standard.

У меня было две библиотеки A и B. Библиотека A зависела от некоторого пакета nuget X, а библиотека B зависела от A. Как только я обновил X до новой версии, он каким-то образом запустился в зависимости от новой версии пакета nuget NETStandard.Library (от 2.0.2 до 2.0.3), который нарушил сборку B с ошибкой Detected package downgrade: NETStandard.Library from 2.0.3 to 2.0.2. Reference the package directly from the project to select a different version Detected package downgrade: NETStandard.Library from 2.0.3 to 2.0.2. Reference the package directly from the project to select a different version.

После того как я добавил пакет nuget NETStandard.Library в качестве зависимости от B (очевидно, для последней версии 2.0.3), ошибка исчезла, даже если появилось новое предупреждение:

/usr/local/share/dotnet/sdk/2.1.403/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets(5,5): предупреждение NETSDK1023: ссылка на пакет для NETStandard.Library был включен в ваш проект. На этот пакет неявно ссылается .NET SDK, и вам обычно не нужно ссылаться на него из вашего проекта. Для получения дополнительной информации см. Https://aka.ms/sdkimplicitrefs (NETSDK1023) (GWallet.Frontend.XF).

Ответ 10

Недавно я столкнулся с этой проблемой, и обновление пакетов NuGet было для меня чем-то.

Ответ 11

Я пытался обновить Microsoft.AspNetcore.MVC до версии 2+. Решением для меня было обновить все другие зависимости сначала до 2+, а затем, наконец, обновить .MVC.

Ответ 12

Я мог бы решить эту проблему, загрузив более раннюю версию пакета, вызвавшую проблему, которая, по-видимому, вызвана зависимостью от версии .NET Standard, которая не установлена, это также должно быть решено путем обновления Visual Studio.

Ответ 13

Я решил эту проблему благодаря этому ответу. По сути, просто добавьте следующую строку в теги <PropertyGroup> в вашем файле .csproj:

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>