前言
在前幾個Visual Studio Code更新中發現有一個重要得特性,就是nodejs可以使用VS Code在WSL中進行Debug了(WSL是指Win10中的Linux子系統),之前寫過一篇文章是使用SSH對Linux環境進行Debug,此時的想法就是如果可以在WSL中直接對程序進行調試的話,那么對於開發人員這項功能將是在Windows中最好連接Linux環境的開發環境了,而且由於Windows子系統的“原理”,所有子系統中的進程將與系統進程運行在物理主機上,所以可以斷定調試的“速度”也是非常快速的。
先決條件
要想在Visual Studio Code中調試.NET Core程序,並運行在Windows Subsystem for linux(WSL)中,需要一些先決條件,這些條件包括:
- 需要將Windows更新到最新的創新者版本(版本號為:1709)
- 在WSL中安裝.NET CORE SDK (2.0.2)
- 最新版本的VS Code和C#擴展 (Microsoft C# extension)
之所以要更新Windows系統到最新的創新者版本,主要是因為之前版本的Windows不能安裝Ubuntu子系統的最新版本。之前的版本為14.04,要想使用新的特性,我們要將Ubuntu子系統升級到16.04版本。
解決問題
安裝WSL
接下來我們先使用bash命令,確定一下Windows上安裝的Ubuntu子系統的版本:
~$ cat /etc/os-release | grep -i version
VERSION="16.04.2 LTS (Xenial Xerus)"
VERSION_ID="16.04"
VERSION_CODENAME=xenial
但是如果已經安裝過WSL后再升級Windows,那樣Ubuntu子秕的版本還會是14.04,所以需要重新安裝一下Ubuntu子系統,命令如下:
lxrun /uninstall /full
lxrun /install
如果你已經是最新版本的創新者的Windows,此時Ubuntu子系統的版本也將升級到16.04。
安裝.NET CORE SDK
只需要到https://www.microsoft.com/net/core#linuxubuntu上找到,對應16.04版本安裝方式,就可以順利的安裝了,與Ubuntu系統的真機安裝體驗一致。
安裝調試器
先要將調試器下載到子系統中運行bash,再運行如下命令:
sudo apt-get install unzip
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
下載過程可能會很慢長,主要取決於是否FQ。下載后的文件會在當前目錄的~/vsdbg/vsdbg。我的下載目錄為:/home/maxzhang/vsdbg/vsdbg
launch.json
添加調試啟動的配置:
{
"name": ".NET Core WSL Launch",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "/mnt/f/dotnetcoreapps/DebugOnWSL/DebugOnWSL/bin/Debug/netcoreapp2.0/DebugOnWSL.dll",
"args": [],
"cwd": "/mnt/f/dotnetcoreapps/DebugOnWSL/DebugOnWSL",
"stopAtEntry": false,
"console": "internalConsole",
"pipeTransport": {
"pipeCwd": "",
"pipeProgram": "C:\\Windows\\System32\\bash.exe",
"pipeArgs": [
"-c"
],
"debuggerPath": "/home/maxzhang/vsdbg/vsdbg"
}
}
具體路徑需要按自己的需要進行修改,然后就可以按F5進行調試了。期待VS中也能擁有這樣的開發體驗。
推廣
GitHub:https://github.com/maxzhang1985/YOYOFx 如果覺還可以請Star下, 歡迎一起交流。
.NET Core 開源學習群:214741894
