Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core 如何更正dotnet还原警告NU1604,不包含包含的下限?_.net Core - Fatal编程技术网

.net core 如何更正dotnet还原警告NU1604,不包含包含的下限?

.net core 如何更正dotnet还原警告NU1604,不包含包含的下限?,.net-core,.net Core,在.NET核心项目(目标为.netcoreapp2.0.)上执行dotnet还原时,我收到以下警告: 警告NU1604:项目依赖项System.Net.NameResolution不包含包含性下限。在依赖项版本中包含下限,以确保一致的恢复结果 以下是项目文件中的相关行: <PackageReference Include="System.Net.NameResolution" Verison="4.3.0" /> (如果您想知道的话,我已经包含了该引用,以避免出现警告NU160

在.NET核心项目(目标为.netcoreapp2.0.)上执行
dotnet还原时,我收到以下警告:

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

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

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

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


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

我认为关键在于不包含版本的最后一位数字。然后,它将默认设置lowerbound为4.3.0

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

为了指示包引用的最低版本,必须将引用的version属性设置为包含包含下限的范围。正如@Carter所指出的

如果未为引用指定包含性下限,则每次还原都将尝试查找可使用的包的较低版本。可以找到有关该警告的更多信息

你的参考资料唯一的问题似乎是你有一个打字错误(Verison而不是Version)。所以这条线应该是

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

使用这一行,您表示项目需要4.3.0或更高版本的包System.Net.NameResolution,因此在4.3.0上包含下限。

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


更新所有损坏的软件包,如果不可用,请删除它们并重新添加。

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


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

谢谢您的建议!我刚试过“4.3”和“4.3.*”。警告是一样的。从我在这一页上收集的信息来看,这很奇怪,应该给它一个下限。真是个谜@卡特:您的答案中有一个输入错误:Verison应该阅读版本,遗憾的是,它不会在VisualStudio或msbuild上产生任何警告。原来的问题也有同样的打字错误,也许这就是问题的原因。此外,他们还说,您可以使用补丁号来表示最低版本,“这可能用于保证具有特定bug修复的依赖性。”这很有趣。我不再需要我的测试项目来知道我是否使用了拼写错误@沃利也把它拼错了,至少在这个问题上,我确信我是从哪里抄来的。不知道它是否在项目中得到纠正。@muscicapastria是一个很好的捕获。我有威瑞森“在我的项目文件中。修复导致警告消失的问题。如果你提交答案,我会给你分数。相关:-也许你的项目目标是较低版本的dotnet核心/标准,这会导致NuGet警告可能对其他人有用:你可以使用
dotnet添加参考
。它应该能为你处理一切。是的,打字错误是关键。不能有任何警告,因此请确保您在正确拼写属性名称时非常小心。好吧,Microsoft可能会提供一个很好的文档。问题是他们没有从错误文档链接到文档!这就是为什么人们要来这里。就我个人而言,我认为这个版本是准确的,而不是一个下限。