UOS 开启 VisualStudio 远程调试 .NET 应用之旅
内容提要
本文介绍了在Windows系统中使用VisualStudio 2022远程调试运行在UOS中的dotnet应用的配置方法。首先确保UOS和Windows构成局域网网络,然后在UOS中开启开发者模式。接着进行配置,包括开启SSH支持和连接VisualStudio。最后使用dotnet-campus的下载器项目作为调试例子。如果遇到调试适配器启动失败的问题,可以通过创建.vs-debugger文件夹解决。
延伸解读
适用场景与网络前提
本文方法适用于在 Windows 上使用 Visual Studio 2022 远程调试运行于 UOS 的 .NET 应用,包括控制台、ASP.NET Core 以及 CPF、UNO/MAUI、Avalonia 等 GUI 程序。前提是 UOS 与 Windows 处于同一局域网或可直接联通的网络,并已在 UOS 中开启开发者模式。若网络不通,后续 SSH 连接和调试均无法进行。
SSH 配置的关键点
UOS 默认未开启 SSH,需修改 /etc/ssh/sshd_config 文件,设置 Port 22、ListenAddress 0.0.0.0 和 ::、PermitRootLogin yes、PasswordAuthentication yes。注意 PermitRootLogin 默认值为 prohibit-password,必须改为 yes。修改后使用 /etc/init.d/ssh start 启动服务,并用 status 命令确认运行状态。若启动失败,需根据错误信息排查。
调试适配器失败的解决方法
附加调试时若提示“未能启动调试适配器”或“Unable to find debugger script at '/home/lin/.vs-debugger'”,通常是因为 Visual Studio 无法创建 .vs-debugger 文件夹。解决方法是退出 sudo su 状态,以普通用户权限在用户主目录下创建 ~/.vs-debugger 文件夹,然后重新尝试附加调试。首次部署调试环境需下载约 200MB 内容,可能较慢,可通过 du -sh 查看下载进度。
提升调试效率的配套工具
文章推荐配合 dotnet-campus 开源的 SyncTool 工具使用,将 Windows 上 Visual Studio 的构建输出同步到 Linux 设备,再通过远程调试进行调试。这种方式可以避免手动拷贝文件,更适合需要频繁修改和调试的场景。具体用法可参考 SyncTool 开源项目页面。
Q&A
如何在UOS中开启SSH支持?
需要修改sshd服务配置文件,解开Port 22、ListenAddress和PermitRootLogin等配置的注释,并启动SSH服务。
在VisualStudio中如何连接到UOS进行远程调试?
在VisualStudio中选择SSH连接类型,输入UOS的网络地址和端口,输入用户名和密码后点击连接。
如果调试适配器启动失败,应该如何解决?
可以通过在UOS中创建.vs-debugger文件夹来解决调试适配器启动失败的问题。
使用dotnet-campus的下载器项目进行调试的步骤是什么?
选择要调试的应用,点击附加到,选择手动和托管(.NET Core for Unix)代码选项,然后点击附加按钮。
在进行远程调试前需要做哪些准备工作?
确保UOS和Windows在同一局域网内,并在UOS中开启开发者模式。
SyncTool工具在远程调试中有什么作用?
SyncTool工具可以将Windows上的VisualStudio构建输出同步到Linux设备上,提升调试效率。