此警告表示用於建置專案的 .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>設定
CheckSdkVulnerabilities為false(預設)以關閉NETSDK1238、NETSDK1239和NETSDK1240。將環境變數設
DOTNET_SDK_VULNERABILITY_CHECK_DISABLE為true。