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

.NET升级助手迁移后修改TargetFramework遇NETSDK1136错误求助

解决NETSDK1136错误:移除Windows目标框架后需指定Windows平台的问题

排查与修复步骤

1. 清理项目文件中的Windows专属配置

打开每个报错项目的.csproj文件,检查并调整以下配置:

  • 移除或设置为false:<UseWindowsForms>true</UseWindowsForms>、<UseWPF>true</UseWPF>
  • 删除<TargetPlatformIdentifier>Windows</TargetPlatformIdentifier>(如果存在)
  • 确保目标框架设置为纯跨平台版本:<TargetFramework>net6.0</TargetFramework>或<TargetFramework>net7.0</TargetFramework>

2. 移除Windows专属依赖

  • 在项目引用中删除System.Web、System.Windows.Forms、PresentationFramework等仅Windows可用的程序集
  • 检查NuGet包列表,替换或移除依赖Windows的第三方库,确保使用跨平台的ASP.NET Core兼容包

3. 修正ASP.NET MVC迁移残留配置

  • 确认项目已完全迁移到ASP.NET Core MVC:引用Microsoft.AspNetCore.Mvc而非旧版System.Web.Mvc
  • 将原Web.config中的路由、认证、授权等配置迁移到appsettings.json和Program.cs中

4. 处理隐式RuntimeIdentifier依赖

若仍报错,检查项目文件是否存在<RuntimeIdentifier>或<RuntimeIdentifiers>配置:

  • 若指定了win-x64等Windows专属RID,改为跨平台RID(如linux-x64、osx-x64)或直接删除(让SDK自动适配)
  • 执行dotnet clean和dotnet restore清理缓存并重新恢复依赖

5. 验证跨平台发布能力

本地执行跨平台发布命令验证兼容性:

dotnet publish -c Release -r linux-x64 --self-contained false

若发布成功,说明项目已具备云环境(如Linux容器、Azure App Service Linux)部署能力

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:20:45