1. 程式人生 > 程式設計 >通過Windows Visual Studio遠端除錯WSL2中的.NET Core Linux應用程式的方法

通過Windows Visual Studio遠端除錯WSL2中的.NET Core Linux應用程式的方法

最近兩天在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

總結

到此這篇關於通過Windows Visual Studio遠端除錯WSL2中的.NET Core Linux應用程式的問題的文章就介紹到這了,更多相關Windows Visual Studio遠端除錯WSL2內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!