You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装.NET 9 SDK导致MacOS上现有.NET 7项目编译失败

MacOS安装.NET 9.0 SDK后.NET 7.0项目编译失败问题

在MacOS环境下安装.NET 9.0 SDK后,原有.NET 7.0项目无法正常编译。该问题最初在Azure DevOps托管代理添加.NET 9.0 SDK时发现,且可在本地Mac设备复现。

第一个错误:NETSDK1202

安装.NET 9.0后,原本的警告转为错误:

/usr/local/share/dotnet/sdk/9.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets(38,5):
错误 NETSDK1202:工作负载“net7.0-macos”已停止支持,未来将不再接收安全更新。有关支持政策的更多信息,请参考相关文档。

解决方法

在项目的.csproj文件中添加以下属性即可解决:

<CheckEolWorkloads>false</CheckEolWorkloads>

第二个错误:NETSDK1135

解决上述问题后,出现新的编译错误:

/usr/local/share/dotnet/sdk/9.0.102/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(230,5):
错误 NETSDK1135:SupportedOSPlatformVersion 10.14 不能高于 TargetPlatformVersion 1.0。

目前该错误无法解决,原本TargetPlatformVersion(TPV)会从TargetFramework自动推断,但现在该机制似乎失效或发生了变化。

当前项目的.csproj内容

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <RootNamespace>xxx</RootNamespace>
    <OutputType>Exe</OutputType>
    <Nullable>enable</Nullable>
    <ImplicitUsings>true</ImplicitUsings>
    <AssemblyName>xxx</AssemblyName>
    <CheckEolWorkloads>false</CheckEolWorkloads>
    <CheckEolTargetFramework>false</CheckEolTargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <CreatePackage>false</CreatePackage>
    <UseSGen>false</UseSGen>
    <LinkMode>None</LinkMode>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <CreatePackage>true</CreatePackage>
    <UseSGen>false</UseSGen>
    <LinkMode>None</LinkMode>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\Common-RlServerApis\Common-RlServerApis.csproj" />
    <ProjectReference Include="..\Common-RlReferenceData\Common-RlReferenceData.csproj" />
    <ProjectReference Include="..\Common-RlLogParsing\Common-RlLogParsing.csproj" />
    <ProjectReference Include="..\Common-RlCrossPlatformGui\Common-RlCrossPlatformGui.csproj" />
    <ProjectReference Include="..\Common-RlCommonUtil\Common-RlCommonUtil.csproj" />
  </ItemGroup>
</Project>

尝试过的其他方法

若将项目中的<TargetFramework>net7.0-macos</TargetFramework>改为<TargetFramework>net7.0</TargetFramework>,可避免NETSDK1135错误,但会因无法找到MacOS相关API而编译失败。

环境信息

原本仅安装.NET 7.0.20时项目可正常编译,安装.NET 9后编译失败,当前本地运行时列表如下:

% dotnet --list-runtimes
Microsoft.AspNetCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

内容的提问来源于stack exchange,提问作者Geoff Hart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:08:11