はじめに
C#のアプリを開発するための環境をUbuntu20.04.2LTSサーバ上につくります。MacからVS Codeを使用してUbuntuにリモート接続します。
WindowsでWSLにインストールしたUbuntuに「Remote - WSL」で接続すれば、同じ方法で、Windows側のVS Codeで開発とデバッグができます。
VS Codeの操作の詳細は記載していません。VS Codeにすでに慣れている方を対象としています。
用意するもの
Ubuntu20.04.2LTS サーバ
Mac
VS Code
SSHでサーバに接続
VS Codeに「Remote - SSH」拡張機能をインストールします。
UbuntuサーバにVS Codeから「Remote - SSH」で接続します。
Ubuntu20.04.2LTS サーバのセットアップ
今回は、UbuntuサーバをMacのVM上(parallels desktop)に作成しました。
クラウドでも実マシンでも要領は同じだと思います。
VS Codeのターミナルから以下のコマンドを実行します。
.Net 5.0をapt-getでインストールできるようにします。
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
.Net 5.0 SDKをインストールします。
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y dotnet-sdk-5.0
VS Code
次に、Ubuntuサーバでデバッグ等が行えるように、C#の拡張機能をインストールします。リモート接続した状態で、「C# ms-dotnettools.csharp」を表示すると、図のようにinstall in SSH: xxx.xxx.xxx.xxxと表示されます。この状態で、インストールすると拡張機能がUbuntu側にインストールされます。Mac側には必要ありません。
プロジェクトの作成
VS Codeのターミナルから以下のコマンドを実行してプロジェクト作成します。
dotnet new console --name CSharpTest
ここで、フォルダを開いている場合は、一旦フォルダを閉じて、CSharpTestフォルダを開きます。
次に、メニューからTerminal->Run Build Taskを選択すると、右下にC#の拡張機能がビルドの設定を作成するかどうか聞いてくるので、Yesを選択します。
プロジェクトフォルダ(この例では、CSharpTest)に、.vscodeフォルダが作成され、その中に、ビルド(tasks.json)と実行(launch.json)の設定ファイルが作成されます。
うまくいかなかった場合、.vscodeフォルダを削除して、sshを切断してからやり直します。
また、プロジェクトのフォルダを開いた状態で行わないと、.vscodeが変な場所に作成されてしまってうまくいかないことがあります。
#ビルドとデバッグ
三角マークに虫のアイコンがあるボタンを押すと Runボタンが表示されます。
なぜか、.NET Core Launch(console)が2つ表示されていますが同じものです。(バグ?)
Launchが選択されていることを確認します。
Runボタンを押すとデバッグ実行されます。
ブレークポイントを設定しておくと、ブレークポイントで停止します。
まとめ
サーバサイドのプログラムをMacのVS Codeから開発、デバッグできるようになりました。
VS Codeは便利で大好きなのですが、うまくいかないとなかなか解決できずにハマってしまうので、いろいろ使い方をまとめていきたいと思います。