VS调试WSL中的.NET应用

  • VS调试WSL中的.NET应用已关闭评论
  • 158 次浏览
  • A+
所属分类:.NET技术
摘要

笔者本地环境: Visual Studio Professional 2022 17.7.1 + WSL2(CentOS7)。开始前,先创建一个名为 “WSLDemo” 的 Web API 项目。


先决条件

  • Visual Studio 2019 v16.9 预览版1或更高版本(通过WSL可选组件进行.NET调试)。若要检查 WSL 组件,请选择 “工具”  > “获取工具和功能” 。 在 Visual Studio 安装程序中,选择 “单个组件”,然后键入 “WSL” 搜索安装组件 。
  • 安装WSL。
  • 安装分发版。

VS调试WSL中的.NET应用

笔者本地环境: Visual Studio Professional 2022 17.7.1 + WSL2(CentOS7)。开始前,先创建一个名为 “WSLDemo” 的 Web API 项目。

一、使用WSL调试

1. 先选中调试下拉菜单中的 “WSL” 选项,如下:

VS调试WSL中的.NET应用

2. 打开 launchSettings.json 文件,发现 “profiles” 里多了一个 “WSL” 配置段,不过出现警告提示:

VS调试WSL中的.NET应用

根据官方说明:从Visual Studio 2022 预览版 3 开始, launchSettings.json 中的 commandName 从 WSL2 更改为 WSL。可是改为WSL后,提示依然存在,看来不是这个问题。尝试启动调试也同样报错:

VS调试WSL中的.NET应用

不知道是VS本身的bug还是其它什么原因,只好先行作罢。

二、附加到WSL进程调试

 1. 把 “WSLDemo” 编译生成好的文件拷贝到WSL中,通过 “dotnet WSLDemo.dll” 命令启动:

VS调试WSL中的.NET应用

 2. 在Visual Studio上点击 “调试”  > “附加到进程”,选择 “连接类型” 和 “连接目标” 以及要附加的进程。

VS调试WSL中的.NET应用

然后,选择调试代码类型,确定。

VS调试WSL中的.NET应用

3. 最后打开浏览器,输入 “http://localhost:5000/weatherforecast” 地址访问,发现程序断点已进入,说明这种调试方式是可以的!

VS调试WSL中的.NET应用

参考资料

在 Linux 中使用 WSL 调试 .NET 应用 - Visual Studio (Windows) | Microsoft Learn