GNU/Linux >> Linux の 問題 >  >> Linux

Windows 上の Visual Studio からの WSL2 での .NET Core Linux アプリのリモート デバッグの公式サポート

以前、新しく改善された Visual Studio コンテナー ツール (および WSL2) を使用した Docker での開発と、Windows 上の Visual Studio から WSL2 での .NET Core Linux アプリのリモート デバッグについてブログに書いたことがあります。

今日お話しするのは2つ目です。 .NET Core コンソールと Web アプリを WSL2 で実行し、Visual Studio 2019 から直接デバッグできるようになりました!

何が必要ですか?

  • .NET コア ツール: https://get.dot.net
  • WSL 2: https://aka.ms/wsl
    • Ubuntu または Debian ディストリビューション: https://aka.ms/wslstore
  • Visual Studio 2019
    • WSL 2 拡張機能を使用した .NET Core デバッグ

拡張機能をインストールしたときの Visual Studio 2019 のエクスペリエンスを次に示します。それは「そのまま動作」し、Windows 上 (IIS または Kestrel Web サーバーの下、またはデフォルトの Linux ディストリビューションの下の Kestrel 下) での実行を非常に簡単に切り替えることができます。

これを確認してください。Linux/WSL 2 の観点から見ると、.NET Core は /usr/share/dotnet/shared から読み込まれますが、ソースは /mnt/d ドライブ (私の Windows D:) に残り、デバッグはうまくいきます。

また、https://localhost:5001 で実行されていること、および Windows の観点から見た localhost とポートが localhost にマップされ、(透過的なローカル トンネルを介して) WSL 2 を指していることにも気付くでしょう。

WSL 2 の Linux Kestrel Web サーバーが SSL 証明書を提供している場合、SSL 証明書はどのように機能しますか?

私の WSL ~/.aspnet フォルダーと Windows のローカル プロファイルの間にシンボリック リンクがあることがわかります。これにより、このアプリは SSL 証明書を共有し、Windows の Kestrel と Linux の Kestrel で同じ証明書が提供されます。

scott@IRONHEART:~$ cd .aspnet
scott@IRONHEART:~/.aspnet$ ls
DataProtection-Keys https
scott@IRONHEART:~/.aspnet$ cd https/
scott@IRONHEART:~/.aspnet/https$ ls
hanselminutes.core.pfx
scott@IRONHEART:~/.aspnet/https$ ls -alogF
total 12
drwxr-xr-x 2 4096 Jun 23 17:02 ./
drwxr-xr-x 4 4096 Jun 23 17:02 ../
lrwxrwxrwx 1 71 Jun 23 17:02 hanselminutes.core.pfx
->
/mnt/c/Users/scott/AppData/Roaming/ASP.NET/Https/hanselminutes.core.pfx*
scott@IRONHEART:~/.aspnet/https$

その行をシンボリック リンクで分割しました -> 3 行に沿って、このブログで折り返さないようにしました。

VS Code の両方を使用して、Windows と Linux で .NET Core アプリを実行およびデバッグできるようになりました。 ビジュアル スタジオ 2019! Visual Studio 2019 の無料の Community Edition を使用していますが、うまく機能します。これにより、Podcast サイトを Azure の Linux に移行したため、コストを節約でき、ローカルでの開発がクラウドの現実により適したものになりました。試してみてください!

スポンサー: 構造化されたアプリケーション ログを一元化して検索し、自信を持って問題を診断します。Seq 2020.1 を使用すると、さらに迅速かつ簡単になります!


Linux
  1. Linux用のWindowsサブシステムの説明、WSLおよびWSL2

  2. Osx、Linux、WindowsからリモートOsxシステムにアクセスしますか?

  3. Linux から Windows ターゲットへのクロスコンパイル用に Qt を構成するにはどうすればよいですか?

  1. Visual Basic は Linux 上の .NET Core でサポートされていますか?

  2. Linux (CentOS 7.1) から以前のバージョンの .NET Core を削除する方法

  3. C#(.NETコア)を使用して、LinuxからWindows共有にファイルをコピーします

  1. XRDPを使用してWindowsからLinuxデスクトップにデスクトップをリモート接続する方法

  2. Linux の Visual Basic .Net

  3. Windows PC からリモート Linux サーバーに rsync を使用する方法は?