微軟為.NET程序員帶來了最優的跨平台開發體驗-WSL


前言

在前幾個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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM