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

VS Code调试.NET项目版本不一致 配置net6.0仍加载5.0运行时

.NET 5升级到6后VS Code调试加载旧版本运行时问题排查

问题现象

将项目所用.NET从5.0版本升级至6.0版本,使用Visual Studio Code执行构建与调试操作时,输出窗口显示OmniSharp服务已基于.NET 6启动:

OmniSharp server started with .NET 6.0.201

但调试控制台仍加载.NET 5版本的运行时文件:

Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\5.0.15\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

同一项目在Visual Studio中运行无异常,可正常加载.NET 6运行时:

'iisexpress.exe' (CoreCLR: DefaultDomain): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.3\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

已在项目.proj文件中指定目标框架为net6.0,相关配置如下:

<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <RootNamespace>CS_Test</RootNamespace>
    <Configurations>Debug;Release;Linux</Configurations>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
    <DockerfileContext>.</DockerfileContext>
</PropertyGroup>

解决步骤

按以下顺序排查遗漏配置即可解决问题:

  • 检查VS Code调试配置文件.vscode/launch.json
    • 确认配置中program字段指向net6.0目录下的编译输出dll,删除升级前残留的net5.0路径配置,正确格式参考:${workspaceFolder}/bin/Debug/net6.0/CS_Test.dll
    • 如果配置中存在runtimeVersion字段且值为5.0.x版本,直接删除该字段,调试器会自动匹配项目目标框架对应的运行时版本
  • 清理旧版本编译缓存
    • 在项目根目录执行清理命令:
      dotnet clean
      
    • 手动删除项目根目录下的bin、obj文件夹,彻底清除net5.0版本的编译残留
    • 重新执行构建命令生成net6.0版本编译产物:
      dotnet build
      
  • 校验OmniSharp运行配置
    • 打开VS Code设置,搜索OmniSharp: Dot Net Path,确认路径指向.NET 6 SDK对应的dotnet可执行文件,不要绑定到.NET 5安装目录
    • 按Ctrl+Shift+P调出命令面板,执行OmniSharp: Restart OmniSharp重启语言服务
  • 检查根目录SDK版本锁定配置
    • 查看项目根目录是否存在global.json文件,如果文件内指定SDK版本为5.0.x,修改为已安装的6.0版本号,或直接删除该文件,dotnet会自动匹配最新安装的6.0版本SDK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:33:25