2017-09-16 202 views
2

雖然在.NET核心項目執行dotnet restore(目標.netcoreapp2.0),我得到以下警告:如何更正dotnet恢復警告NU1604,不包含下限?

警告NU1604:項目依賴System.Net.NameResolution不包含一個具有包容性的下限。在依賴版本中包含下限以確保一致的恢復結果。

這裏是從項目文件中的相關行:

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

(如果你想知道,我已經包括參考,以避免警告NU1605:檢測包降級)

如何是否「在依賴版本中包含下限以確保一致的恢復結果」?

+0

相關:https://stackoverflow.com/a/43992843/213550 - 也許你的項目的目標是較低版本的dotnet核心/標準,這導致NuGet警告 – VMAtm

回答

3

爲了表示對你有參考的屬性設置爲包含一個具有包容性的下限範圍你的包引用最低版本。正如@Carter指出的,Microsoft provides a nice documentation about the format of that property

如果您未爲引用指定包含下限,則每次還原都會嘗試查找可以使用的軟件包的較低版本。有關警告的更多信息,可以發現on the nuget errors and warnings reference page

與參考唯一的問題似乎是,你有一個錯字(Verison而不是)。因此,該行應是

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

這條線,你表明,該項目需要的版本4.3.0以上的包System.Net.NameResolution,因而對4.3所包含的最低.0

+2

是的,錯字是關鍵。一定不要有任何警告,因此請確保在正確拼寫屬性名稱時小心謹慎。 – Carter

1

我認爲關鍵是不要在您的版本中包含最後一位數字。然後默認情況下它將設置爲4.3.0。

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

感謝您的建議!我只是嘗試了「4.3」和「4.3。*」。警告是一樣的。 – Wally

+0

從我在這個頁面上收集到的應該給它一個下限,這很奇怪。 https://docs.microsoft.com/en-us/nuget/reference/package-versioning#version-ranges-and-wildcards 很神祕! – Carter

+1

@Carter你的答案中有一個錯字:_Verison_應該讀取_Version_,遺憾的是它不會在visual studio或msbuild上產生任何警告。原來的問題也有相同的錯字,也許是造成這個問題。另外,在[link](https://docs.microsoft.com/en-us/nuget/reference/package-versioning#version-ranges-and-wildcards)上,他們說你可以使用_Patch_編號來表示最低版本, *「這可能被用來保證對特定錯誤修復的依賴。」* –