NETSDK1240:目前的 .NET SDK 功能區段已停止使用

此警告表示用於建置專案的 .NET SDK 功能區間沒有更新版本,儘管同一主版本中存在不同功能區間的更新 SDK。 完整的警告訊息與以下範例相似:

NETSDK1240:目前的 .NET SDK(<version>)功能範圍內沒有更新版本。 更新至版本 <版本>: https://dotnet.microsoft.com/download

.NET SDK 版本的形式為 <major>.<minor>.<feature-band><patch>(例如,8.0.404,其中 4xx 為功能頻帶)。 當推薦的維修路徑移到不同功能頻段時,舊頻段將停止接收更新。 若要解決此警告,請從 https://dotnet.microsoft.com/download 安裝建議的 .NET SDK 版本,並更新 global.json(如果有的話)以選取該版本。

檢查的運作原理

這項檢查是選擇加入的,且只有在將 MSBuild 屬性 CheckSdkVulnerabilities 設為 true 時才會執行:

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

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

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

隱藏警告

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

  • NETSDK1240新增至NoWarn

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

  • 將環境變數設 DOTNET_SDK_VULNERABILITY_CHECK_DISABLEtrue

參見