NuGet 警告 NU1901、NU1902、NU1903、NU1904
警告 NU1902:套件 'NuGet.Protocol' 5.11.2 具有已知的中度嚴重性弱點, https://github.com/advisories/GHSA-g3q9-xf95-8hp5
警告碼會根據已知的弱點嚴重性層級而變更:
警告碼 | 嚴重性 |
---|---|
NU1901 | 愛荷華州 |
NU1902 | 溫和 |
NU1903 | 高 |
NU1904 | critical |
問題
為專案還原的套件有已知的弱點。
如需詳細資訊,請參閱 稽核套件的檔。
解決方案
當您的專案使用具有已知弱點的套件,以及可協助的工具時,我們有更多 關於建議動作的討論部落格文章 。
升級至較新版本的套件可能會解決警告。
如果您的專案未直接參考套件(它是可轉移的套件), dotnet nuget why
則可以用來瞭解導致套件包含在專案中的封裝。
您可以檢查弱點諮詢所提供的 URL,以查看已修正的套件版本,或檢查您設定的套件來源,以查看可用的套件版本。
Visual Studio 的套件管理員 UI 可以顯示哪些套件版本受到影響,哪些版本沒有已知的弱點。
如果這些警告造成還原失敗,因為您使用 TreatWarningsAsErrors
,您可以新增 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
以允許這些程式代碼維持為警告。
如果您不想收到比您熟悉層級更嚴重之弱點的通知,您可以編輯項目檔,並新增 MSBuild 屬性 NuGetAuditLevel
,並將值設定為 low
、 moderate
、 high
或 critical
。
例如: <NuGetAuditLevel>high</NuGetAuditLevel>
。
如果您想要隱藏特定諮詢,請新增 MSBuild NuGetAuditSuppress 專案。
例如 <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g3q9-xf95-8hp5" />
。
NuGetAuditSuppress
可從 VS 17.11 和 .NET 8.0.400 SDK 取得,適用於使用 PackageReference
的專案,以及使用 packages.config
的 VS 17.12。
如果您不想讓 NuGet 在還原期間檢查是否有已知弱點的套件,請在專案檔Directory.Build.props
或檔案中<PropertyGroup>
新增 <NuGetAudit>false</NuGetAudit>
。
如果您想要在開發人員計算機上執行 NuGet 稽核,但在 CI 管線上將其停用,您可以利用 MSBuild 匯入環境變數,並在管線定義中建立設定為 false
的 NuGetAudit 環境變數。
在 NuGet 6.12 (Visual Studio/MSBuild 17.12 和 .NET 9.0.100 SDK)中,NuGet 已將 的預設值 NuGetAuditMode
變更為 all
,這表示回報具有已知弱點的可轉移套件。
此值可以明確設定為 direct
,以還原回 .NET 8 的預設值。 或者, 屬性 SdkAnalysisLevel
可以設定為 8.0.400
,暫時停用新版 SDK 中引入的所有新警告和錯誤。 具體而言,在此情況下,預設值 NuGetAuditMode
會變更回 direct
。