NETSDK1238: Det aktuella .NET SDK:et har kända sårbarheter

Den här varningen anger att den .NET SDK som används för att skapa ditt projekt har en eller flera kända vanliga sårbarheter och exponeringar (CVE). Det fullständiga varningsmeddelandet liknar följande exempel:

NETSDK1238: Aktuell .NET SDK (<version>) har kända sårbarheter (<CVE-lista>). Uppdatera till version <version>. Se https://dotnet.microsoft.com/download

Lös varningen genom att installera en korrigerad .NET SDK från https://dotnet.microsoft.com/download och uppdatera din global.json (om det finns) för att välja den nya versionen.

Så här fungerar kontrollen

Kontrollen är valbar och körs bara när MSBuild-egenskapen CheckSdkVulnerabilities anges till true:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <CheckSdkVulnerabilities>true</CheckSdkVulnerabilities>
  </PropertyGroup>
</Project>

Du kan också skicka /p:CheckSdkVulnerabilities=true till ett .NET CLI-kommando, till exempel dotnet build.

Som standard uppdaterar .NET CLI en lokal cache med SDK-versionsmetadata i bakgrunden högst en gång var 24:e timme under ~/.dotnet/sdk-vulnerability-cache/. Om du vill ändra det intervallet anger du DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS. MSBuild-kontrollen läser endast cacheminnet. det gör inte nätverksanrop under bygget. På datorer som aldrig har haft nätverksåtkomst genereras ingen varning.

Ignorera varningen

Så här utelämnar du varningen utan att uppdatera SDK:n:

  • Lägg till NETSDK1238 i NoWarn:

    <NoWarn>$(NoWarn);NETSDK1238</NoWarn>
    
  • Ange CheckSdkVulnerabilities till false (standard) för att inaktivera NETSDK1238, NETSDK1239 och NETSDK1240.

  • DOTNET_SDK_VULNERABILITY_CHECK_DISABLE Ange miljövariabeln till true för att inaktivera både cacheuppdateringen och byggtidskontrollen.

Se även