You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为C# Dev Kit调试器指定特定项目使用的.NET版本

如何为C# Dev Kit调试器指定特定项目使用的.NET版本

没问题!我刚好折腾过类似的场景,给你几个只针对当前项目生效的配置方法,完全不会影响全局的.NET版本设置:

方法1:修改项目文件(最直接,优先推荐)

项目本身的.csproj(或者.vbproj)文件就是控制目标框架的核心,改这里最稳妥:

  1. 打开你项目根目录下的.csproj文件
  2. 找到<PropertyGroup>节点,确认里面的<TargetFramework>值是netcoreapp2.2(如果没有就加上):
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework> <!-- 就是这行,指定目标框架为.NET Core 2.2 -->
  </PropertyGroup>
</Project>
  1. 保存文件后,C# Dev Kit会自动重新加载项目,调试时就会自动匹配对应的.NET 2.2运行时了。

方法2:用global.json锁定SDK版本

如果你的机器上装了多个同大版本的SDK(比如2.2有多个小版本),或者想强制指定用某个特定的2.2 SDK,可以在项目根目录创建global.json文件:

  1. 在项目根目录新建一个名为global.json的文件
  2. 填入以下内容,注意把version改成你实际安装的.NET 2.2的完整SDK版本号:
{
  "sdk": {
    "version": "2.2.207", // 这里要填你自己的2.2 SDK版本,比如2.2.401之类的
    "rollForward": "disable" // 禁用自动升级,强制用指定版本
  }
}
  1. 怎么看自己的2.2 SDK版本?打开终端输dotnet --list-sdks,找开头是2.2.的那一行的完整版本号就行。

方法3:调试配置文件(launch.json)指定运行时

如果上面两种方法还没搞定(比如特殊调试场景),可以直接在VS Code的调试配置里指定运行时路径:

  1. 打开项目的.vscode/launch.json文件(如果没有就按F5生成一个)
  2. 在对应的调试配置项里添加runtimeExecutable,指向你.NET 2.2的dotnet.exe路径:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch (console)",
      "type": "coreclr",
      "request": "launch",
      "program": "${workspaceFolder}/bin/Debug/netcoreapp2.2/你的项目名称.dll",
      "args": [],
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "C:\\Program Files\\dotnet\\dotnet.exe", // 如果你2.2的dotnet在其他路径就填对应的
      "environmentVariables": {}
    }
  ]
}

注意:program路径里的netcoreapp2.2要和你.csproj里的<TargetFramework>完全一致,不然会找不到调试文件。

最后提个小提醒

如果改完配置后调试器还是用.NET 8,试试重启VS Code,或者在命令面板(Ctrl+Shift+P)里执行「C#: Restart OmniSharp Server」,有时候缓存会导致配置不生效~

火山引擎 最新活动