NETSDK1239:当前 .NET SDK 已终止支持

此警告指示用于生成项目的.NET SDK 已终止(EOL),并且不再接收安全更新。 完整的警告消息类似于以下示例:

NETSDK1239:截至 <date>,当前.NET SDK(<version>)生命周期结束。 它不会收到进一步的安全更新: https://dotnet.microsoft.com/download

若要解决该警告,请从 https://dotnet.microsoft.com/download 安装受支持的 .NET SDK,并更新 global.json(如果存在),以选择新版本。 有关当前支持时间线,请参阅 .NET 版本和支持

此警告不同于 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 在 ~/.dotnet/sdk-vulnerability-cache/ 下每隔 24 小时最多刷新一次后台 SDK 发布元数据的本地缓存。 设置 DOTNET_SDK_VULNERABILITY_CHECK_INTERVAL_HOURS 以更改刷新间隔。 MSBuild 检查仅读取该缓存;它在生成期间不进行网络调用。

禁止显示警告

若要在不更新 SDK 的情况下取消警告,请执行以下操作:

  • NETSDK1239添加到NoWarn

    <NoWarn>$(NoWarn);NETSDK1239</NoWarn>
    
  • 设置为 CheckSdkVulnerabilitiesfalse (默认值)以关闭NETSDK1238、NETSDK1239和NETSDK1240。

  • DOTNET_SDK_VULNERABILITY_CHECK_DISABLE 环境变量设置为 true.

另见