如何更正dotnet恢复警告NU1604,不包含包含下限?

时间:2017-09-16 13:20:50

标签: .net-core

在.NET Core项目上执行dotnet restore时(针对.netcoreapp2.0。),我收到以下警告:

  

警告NU1604:项目依赖项System.Net.NameResolution不包含包含的下限。在依赖项版本中包含下限以确保一致的还原结果。

以下是项目文件中的相关行:

<PackageReference Include="System.Net.NameResolution" Verison="4.3.0" />

(如果您想知道,我已经包含该引用以避免警告NU1605:检测到包降级。)

如何“在依赖项版本中包含下限以确保一致的恢复结果”?

4 个答案:

答案 0 :(得分:6)

为了指示包引用的最低版本,您必须将引用的 Version 属性设置为包含包含下限的范围。正如@Carter指出的那样,Microsoft provides a nice documentation about the format of that property

如果未指定引用的包含下限,则每次还原都将尝试查找可以使用的包的较低版本。有关该警告的更多信息可以在on the nuget errors and warnings reference page

找到

您的引用唯一的问题似乎是您有一个拼写错误( Verison 而不是 Version )。所以该行应

<PackageReference Include="System.Net.NameResolution" Version="4.3.0" />

使用此行,您指示项目需要 4.3.0 或更高版本的软件包 System.Net.NameResolution ,因此包含下限< EM> 4.3.0

答案 1 :(得分:4)

我认为关键是不要在你的版本中包含最后一位数字。然后它默认将下限设置为4.3.0。

borrow

答案 2 :(得分:1)

右键单击“软件包”->管理NuGet软件包->更新

更新所有损坏的软件包,如果无法使用,请删除它们并再次添加。

答案 3 :(得分:0)

我遇到了同样的错误,但这是因为我已将项目从 .NET Core 3.1 更新到 .NET 5.0 并且依赖项不兼容。当我从 NuGet 包管理器卸载并尝试重新安装包时,我收到一个新警告:Package Microsoft.AspNetCore.Mvc.NewtonsoftJson is not compatible with net5.0。最初的错误没有表明是这种情况(尽管事后看来,包名确实如此)。

TL;DR:检查您的依赖项是否与您使用的 .NET 版本兼容。