.NET升级后VS编译正常但dotnet publish报NETSDK1136错误
问题原因及解决办法
以下是可能导致该问题的几个原因及对应解决方式:
发布命令指定了错误的目标框架
执行dotnet publish时如果手动添加了-f net6.0参数,会覆盖项目文件中设置的net6.0-windows,触发NETSDK1136错误。解决时确保发布命令指定正确的框架,比如执行:dotnet publish -f net6.0-windows项目文件存在多框架配置冲突
如果.csproj中使用了<TargetFrameworks>(复数)节点同时包含net6.0和net6.0-windows,发布时若未指定具体框架,会默认选择net6.0导致错误。要么删除多余的框架节点,只保留<TargetFramework>net6.0-windows</TargetFramework>;要么发布时明确指定目标框架。发布配置文件(.pubxml)覆盖了目标框架设置
自定义的发布配置文件(通常在Properties/PublishProfiles目录下)可能硬编码了<TargetFramework>net6.0</TargetFramework>。打开对应的.pubxml文件,将该节点修改为net6.0-windows,保存后重新发布。全局.json锁定了不兼容的SDK版本
项目根目录的global.json如果指定了低于6.0的.NET SDK版本,可能无法正确处理net6.0-windows的发布逻辑。检查global.json中的sdk.version,确保是6.0及以上的稳定版本,比如:{ "sdk": { "version": "6.0.417" } }
内容的提问来源于stack exchange,提问作者Patrick Karcher
相关产品推荐
相关产品推荐

