.net 错误NU1605检测到包降级

.net 错误NU1605检测到包降级,.net,visual-studio-2017,.net-core,nuget,.net-core-2.0,.net,Visual Studio 2017,.net Core,Nuget,.net Core 2.0,我在我的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 ->

我在我的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>
我不知道为什么它试图从我们的私人公司包存储库中检索有关“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>
错误NU1605检测到包降级

对于错误NU1605:

您可以使用
NU1605
清除项目中的
警告aserrors

这是因为默认情况下,
netcoreapp2.0
项目具有
num1605
。从属性->构建->将警告视为错误中进行检查:

添加如下内容:

<PackageReference Include="Colorful.Console" Version="1.2.6">
      <NoWarn>NU1605</NoWarn>
</PackageReference>
注意:您可能会注意到您的项目还有另一个警告,请注意PackageReference
DotSpinners
上的黄色三角形标志。这是因为包
DotSpinners
是一个.NET Framework项目,与.NET核心项目不兼容


希望这能有所帮助。

请确保您在生成和发布时使用相同的版本 您可以通过添加2.1.9来修复它 在PropertyGroup下的.csproj文件中,这应该与当前设置版本相匹配。 例:


Exe
netcoreapp2.1
2.1.9 
我得到的错误是:
NETSDK1061:已使用Microsoft.NETCore.App版本2.1.9还原该项目,但在当前设置下,将使用版本2.1.0

导致此错误的原因是,在一个或多个.csproj文件中有多个对同一个包的引用。在我们的例子中,这些引用指向我们自己的nuget存储库中的本地依赖项

这对于VisualStudio中的开发人员是不可见的,因此您需要在单独的编辑器中打开.csproj文件


对于我的团队来说,我认为原因是依赖库和使用该依赖性的解决方案中大量搅动的组合。无论出于何种原因,git合并都会在.csproj文件中采用这两个版本,而不会引起冲突。在几个项目文件中,我发现了相同依赖项的3个版本。

我在.netcoreapp2.2控制台应用程序中遇到了类似的问题

这项工程正在顺利进行。然而,发布失败,出现了几个NU1605错误

问题源于log4net版本2.0.8。它在.netstandard2.0项目中被引用,具有以下依赖项:

它们导致引用log4net的项目中的包降级。在发布期间,这些警告将被视为错误

为了解决这个问题,我通过Nuget添加了这些库的正确版本

最后,出版成功了

p.S.当我第一次添加带有最新版本库的包时,依赖项列表上显示了一个黄色警告标志,好像这些包不适合该项目。卸载项目并重新加载后,警告标志消失了!(我正在使用Visual Studio 2019)


希望有帮助

在同一解决方案中使用.Net标准2.0 DLL的.Net Core 2.2项目中,我遇到了这个问题。当我向.Net核心应用程序添加几个SeriLog包时,我报告了.Net标准DLL的错误。我撤销了更改,然后逐个添加SeriLog包,在每次添加之间进行清理和重建。这次没有错误…

我在发布时遇到了类似的问题(NU1605),但我发现是运行时
linux-x64
。因此,我删除了运行时选项,问题就消失了。

我不确定这是否是解决此问题的最佳选项或方法,但我遇到了同样的问题:

NuGet警告NU1605(包降级)

我的淘汰过程是确保我的项目: 1.保存的 2.构建解决方案(ctrl-shift b)(唯一的错误是NU1605) 3.在项目文件夹上单击鼠标右键,然后单击“管理NuGet软件包”。 4.点击更新,我亲自更新了所有软件包。 5.(再次执行步骤2)

这就是我所需要做的。希望这是相同的结果。

只是在
.Net core 3.1和
log4Net
中出现了相同的问题(NU1605):

错误NU1605:检测到包降级:System.Net.NameResolution从4.3.0降级到4.0.0


我所做的是添加对
System.Net.NameResolution
的Nuget引用并安装4.3.0版,然后关闭Visual Studio并重新打开解决方案。

以上所有这些都无法帮助我完成.Net Core 3.1项目

完全重新编译后,错误NU1605一再出现。csproj文件中对版本号的所有引用都是正确的

最后的帮助是删除obj文件夹


之后,重新编译工作顺利进行。

我遇到了一个类似的问题,我的项目有如下的包参考:

包参考:

  • A包
  • B包
    • A包
因为项目B引用了包A,所以我刚刚从主包列表中删除了包A,剩下的包B引用了包A。
我重新构建了解决方案,问题就消失了。

这个问题已经有了很多答案,其中很多都解决了问题,但我认为我应用的解决方案比我在网上看到的其他解决方案更干净

如前所述,.Net Core 3.1中常见的错误嫌疑是某个程序集,这取决于需要
系统。*
Microsoft.*
程序集的库

当构建运行时,一切都可以正常进行,因为程序集的解析仅使用项目引用。
执行“发布”生成时,如果选择了运行时,则程序集的解析不会遵循Nuget在还原时使用的算法,因此Warni
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.
<PackageReference Include="Colorful.Console" Version="1.2.6">
      <NoWarn>NU1605</NoWarn>
</PackageReference>
<PropertyGroup>
      <NoWarn>NU1603</NoWarn>
</PropertyGroup>
  <PropertyGroup>
      <OutputType>Exe</OutputType>
      <TargetFramework>netcoreapp2.1</TargetFramework>    
      <RuntimeFrameworkVersion>2.1.9</RuntimeFrameworkVersion> 
  </PropertyGroup>
<!-- adjust runtime and package version accordingly -->
<ItemGroup Condition="'$(RuntimeIdentifier)' == 'win-x64' ">
  <PackageReference Include="Microsoft.NETCore.Targets" Version="3.1.0" />
</ItemGroup>