最近两天在Linux中调试.NET Core应用程序,同时我发现在Linux中调试.NET Core应用程序并不容易。一直习惯在Visual Studio中进行编码和调试。现在我想的是可以简单快速的测试.NET Core应用在Linux。所以通过本篇文章我们能了解到如何在Windows中使用Visual Studio进行远程调试我们部署在Linux中的应用程序,从而我们可以去发现或者说去调试在中会产生的一些问题。

Windows中的Linux:Hello WSL

子系统从这里我不做过多的介绍了,大家有兴趣的话可以从 https://docs.microsoft.com/en-us/windows/wsl/about 中了解一下。

第一步从windows开启wsl

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

我们可以搜到他并打开

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

打开后我们可以看到如下内容

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

因为一会我需要对他进行调试所以我这边选择的是DEBUG

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

通过上面一波操作后我们需要做的是在WSL提示符下,输入dotnet并加上我们的应用程序集名称

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

现在我们已经将我们的应用程序发布到了linux中如下所示

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

如何附加到正在运行的Linux应用程序

正如上面所述,我想要做的是在Visual Studio中调试Linux应用程序,那么下面我们来看一下附加

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

SSH连接类型将与具有以下通信架构的WSL一起使用:

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

我们需要安装vsdbg调试器,然后通过SSH通到将命令发送到Linux调试器。

默认情况下,SSH服务器与WSL一起安装。但是,我无法使整个管道都可以使用,因此必须卸载并重新安装它:

sudo apt-get remove openssh-server

sudo apt-get install openssh-server

更改SSH配置,以允许 Visual Studio所需的用户名/密码类型的安全性,如果不知道如何有效地使用vi来简单地编辑文件,请安装nano

sudo apt-get install nano

在/etc/ssh/sshd_config中,更改PasswordAuthentication设置

sudo nano /etc/ssh/sshd_config

PasswordAuthentication yes

重启SSH服务器

sudo service ssh start

安装解压缩才能获取vsdbg

sudo apt-get install unzip

curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg

现在我们可以选择SSH作为连接类型,同时需要点击“刷新”按钮将这些信息填充,如下所示:

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

单击“刷新”按钮后,底部的列表应包含在WSL中运行的Linux进程。

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

选择.NET Core应用程序,然后单击附加选择托管调试器:

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

当我们在代码中设置断点之后,并且触发我们设置的断点就会达到如下效果:

通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序的方法

通过上面内容来说我们以达到了我们预期的想法,我们可以通过Visual Studio借助WSL进行调试Linux应用程序。当然对于这一块我也在寻找更便捷的方式,当然我还发现一个
.NET Core Debugging with WSL 2.

Reference

https://www.hanselman.com/blog/RemoteDebuggingANETCoreLinuxAppInWSL2FromVisualStudioOnWindows.aspx

https://devblogs.microsoft.com/devops/debugging-net-core-on-unix-over-ssh/

https://medium.com/criteo-labs/wsl-visual-studio-attaching-launching-a-linux-net-core-application-on-my-window-10-ab21c179702d

https://github.com/Microsoft/MIEngine/wiki/Offroad-Debugging-of-.NET-Core-on-Linux---OSX-from-Visual-Studio

总结

华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。