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_DISABLE 环境变量设置为 true.

另见