NETSDK1239:目前的 .NET SDK 已經終止生命週期

此警告表示用於建置專案的 .NET SDK 已進入終止生命週期(EOL),不再接收安全更新。 完整的警告訊息與以下範例相似:

NETSDK1239:目前的 .NET SDK(<version>)於 <date> 結束。 將不再有進一步的安全更新: https://dotnet.microsoft.com/download

若要解決此警告,請從 https://dotnet.microsoft.com/download 安裝受支援的 .NET SDK,並更新 global.json(如果有的話),以選取新版本。 有關目前支援時程,請參見 .NET releases and support

此警告與 NETSDK1138不同,後者是在專案目標 框架 失效時發出。 當執行建置的 SDK 已終止支援時,無論您的目標是哪個架構,都會引發 NETSDK1239。

檢查的運作原理

此檢查需選擇加入,且僅在 MSBuild 屬性 CheckSdkVulnerabilities 設定為 true 時才會執行:

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

你也可以將 /p:CheckSdkVulnerabilities=true 傳給 .NET 的 CLI 指令,例如 dotnet build

預設情況下,.NET CLI 最多每 24 小時在背景刷新一次 SDK 發布元資料的本地快取,且頻率為 ~/.dotnet/sdk-vulnerability-cache/。 設定 DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS 為更改刷新間隔。 MSBuild 檢查只讀取該快取;它在建置過程中不會進行網路通話。

隱藏警告

要在不更新 SDK 的情況下抑制警告:

  • NETSDK1239新增至NoWarn

    <NoWarn>$(NoWarn);NETSDK1239</NoWarn>
    
  • 設定 CheckSdkVulnerabilitiesfalse (預設)以關閉NETSDK1238、NETSDK1239和NETSDK1240。

  • 將環境變數設 DOTNET_SDK_VULNERABILITY_CHECK_DISABLEtrue

參見