Ошибка NU1605 Обнаружено понижение пакета - PullRequest
0 голосов
/ 11 мая 2018

В моем консольном приложении netcoreapp2.0 возникают следующие ошибки зависимости NU1605:

NU1605  Detected package downgrade: System.Diagnostics.Debug from 4.3.0 to 4.0.11. Reference the package directly from the project to select a different version. 
 MyProject -> Colorful.Console 1.2.6 -> System.IO.FileSystem 4.0.1 -> runtime.win.System.IO.FileSystem 4.3.0 -> System.Diagnostics.Debug (>= 4.3.0) 
 MyProject -> System.Diagnostics.Debug (>= 4.0.11)

NU1605  Detected package downgrade: System.Runtime.Extensions from 4.3.0 to 4.1.0. Reference the package directly from the project to select a different version. 
 MyProject -> Colorful.Console 1.2.6 -> System.IO.FileSystem 4.0.1 -> runtime.win.System.IO.FileSystem 4.3.0 -> System.Runtime.Extensions (>= 4.3.0) 
 MyProject -> Colorful.Console 1.2.6 -> System.Runtime.Extensions (>= 4.1.0)    MyProject

NU1605  Detected package downgrade: System.Runtime.Handles from 4.3.0 to 4.0.1. Reference the package directly from the project to select a different version. 
 MyProject -> Colorful.Console 1.2.6 -> System.IO.FileSystem 4.0.1 -> runtime.win.System.IO.FileSystem 4.3.0 -> System.Runtime.Handles (>= 4.3.0) 
 MyProject -> Colorful.Console 1.2.6 -> System.IO.FileSystem 4.0.1 -> System.Runtime.Handles (>= 4.0.1)

NU1605  Detected package downgrade: System.Runtime.InteropServices from 4.3.0 to 4.1.0. Reference the package directly from the project to select a different version. 
 MyProject -> Colorful.Console 1.2.6 -> System.Console 4.0.0 -> runtime.win.System.Console 4.3.0 -> System.Runtime.InteropServices (>= 4.3.0) 
 MyProject -> Colorful.Console 1.2.6 -> System.Runtime.InteropServices (>= 4.1.0)

Я пытался ссылаться на эти версии пакетов в csproj, но это не решает проблему. Смотрите csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Colorful.Console" Version="1.2.6" />
    <PackageReference Include="CommandLineParser" Version="2.2.1" />
    <PackageReference Include="DotSpinners" Version="1.2.0" />
    <PackageReference Include="System.Diagnostics.Debug" Version="4.0.11" />
    <PackageReference Include="System.Runtime.Extensions" Version="4.1.0" />
    <PackageReference Include="System.Runtime.Handles" Version="4.0.1" />
    <PackageReference Include="System.Runtime.InteropServices" Version="4.1.0" />
  </ItemGroup>
</Project>

И, похоже, они прекрасно восстанавливают:

Package References

Проект также ссылается на Microsoft.NETCore.App 2.0 SDK.

При выполнении восстановления dotnet из CLI я также получаю следующую ошибку, которая, я не уверен, связана:

C:\Program Files\dotnet\sdk\2.1.200\NuGet.targets(114,5): error : Failed to retrieve information about 'System.Runtime.Serialization.Formatters' from remote source 'https://mycompany.pkgs.visualstudio.com/_packaging/myid/nuget/v3/flat2/system.runtime.serialization.formatters/index.json'. [C:\MyProject\MyProject.sln]
C:\Program Files\dotnet\sdk\2.1.200\NuGet.targets(114,5): error : Response status code does not indicate success: 401 (Unauthorized). [C:\MyProject\MyProject.sln]

Понятия не имею, почему он пытается получить информацию о System.Runtime.Serialization.Formatters из нашего хранилища пакетов частной компании.

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="mycompany" value="https://mycompany.pkgs.visualstudio.com/_packaging/Stable/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
     <mycompany>
       <add key="Username" value="vsts" />
       <add key="ClearTextPassword" value="xxx" />
     </mycompany>
   </packageSourceCredentials>
  <disabledPackageSources>
    <add key="Microsoft and .NET" value="true" />
  </disabledPackageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>

У меня также есть следующее предупреждение NU1603, если это что-то значит:

NU1603  MyProject depends on System.Runtime.Handles (>= 4.1.0) but System.Runtime.Handles 4.1.0 was not found. An approximate best match of System.Runtime.Handles 4.3.0 was resolved.

Ответы [ 3 ]

0 голосов
/ 16 апреля 2019

Убедитесь, что вы используете ту же версию для сборки и публикации Вы можете исправить это, добавив 2.1.9 в .csproj файле под PropertyGroup это должно соответствовать вашей текущей версии настроек. Пример:

  <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>netcoreapp2.1</TargetFramework>    
      <RuntimeFrameworkVersion>2.1.9</RuntimeFrameworkVersion> 
  </PropertyGroup>

Ошибка, которую я получил, был: NETSDK1061: проект был восстановлен с использованием Microsoft.NETCore.App версии 2.1.9, но с текущими настройками будет использоваться версия 2.1.0.

0 голосов
/ 14 июня 2019

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

Это невидимо для разработчика в Visual Studio, поэтому вам нужно открыть файл .csproj в отдельном редакторе.

Для моей команды, я думаю, причина в том, что в зависимой библиотеке и в решении, использующем эту зависимость, присутствует много изменений. По какой-то причине git merge примет обе версии в файле .csproj без возникновения конфликта. В нескольких файлах проекта я обнаружил 3 версии одной и той же зависимости.

0 голосов
/ 14 мая 2018

Ошибка NU1605 Обнаружено понижение пакета

Для ошибки NU1605 :

Вы можете использовать <NoWarn>NU1605</NoWarn> для очистки WarningsAsErrors вваш проект.

Это потому, что netcoreapp2.0 проекты имеют <WarningsAsErrors>NU1605</WarningsAsErrors> по умолчанию.Проверьте это в Свойства-> Построить-> Считать предупреждение ошибкой:

enter image description here

Добавить как следующее:

<PackageReference Include="Colorful.Console" Version="1.2.6">
      <NoWarn>NU1605</NoWarn>
</PackageReference>

Проверьтесообщение в блоге здесь: MSBuild интеграция предупреждений и ошибок NuGet и Неожиданные предупреждения о версии пакета .

Для ошибки NU1603 :

Предупреждение возникает из-за того, что System.Runtime.Handles (> = 4.1.0 ) не существует в ленте.Обычно это ошибка разработки пакета, поскольку пакет зависит от того, чего не существует.

Вы также можете использовать <NoWarn>NU1603</NoWarn> для решения этой проблемы:

<PackageReference>
      <NoWarn>NU1603</NoWarn>
</PackageReference>

Примечание.обратите внимание, что у вашего проекта есть еще одно предупреждение, обратите внимание на желтый треугольный знак на PackageReference DotSpinners на ссылке.Это потому, что пакет DotSpinners является проектом .NET Framework и не совместим с вашим проектом .NET Core.

Надеюсь, это поможет.

...