Visual Studio Codeで.NET Coreアプリをデバッグする

Visual Studio Codeのリリース当初、普段 仕事でフルセットの Visual Studio 2015 を使っている身としてあまり関心を持っていなかったのですが、使ってみたらなんだか結構いけてる気がしてきました。

VS2015ほど、裏でいろいろお世話してくれることもないので、「.NET Core」であったり「Angular2+TypeScript」の最新版であったりを使う場合には問題が発生しにくく、使い勝手がいいんじゃないかと思っています。

ということで、「.NET Core / .NET CLI 1.0.0-preview2-0031119」「Visual Studio Code 1.2.1」という環境で.NET Coreアプリをブレークポイント付きでデバッグするところまで見ていこうと思います。

ちなみにVisual Studio Codeが非常に親切で、あえてブログ記事にする必要がないかと思う程簡単に出来てしまいます。

.NET CoreランタイムとCLIをインストールする

以下のgithubから「.NET Core SDK Installer」をダウンロードしてインストールを行います。

https://github.com/dotnet/cli

※デイリービルドされているので、バージョンは毎日違います。

f:id:daigo-knowlbo:20160618120936p:plain

Visual Studio Codeをインストールする

以下のサイトからVisual Studio Codeをダウンロードしてインストールを行います。

https://www.visualstudio.com/ja-jp/products/code-vs.aspx

f:id:daigo-knowlbo:20160618121059p:plain

Visual Studio CodeにC# Extensionをインストールする

Visual Studio CodeでC#プログラムをデバッグするためにエクステンションをインストールします。
「CTRL+P」でパレットを表示して以下のコマンドを実行します。

ext install csharp

f:id:daigo-knowlbo:20160618121332p:plain

f:id:daigo-knowlbo:20160618121340p:plain

Visual Studio Codeの再起動が求められるので、再起動します。

.NET Coreアプリを作成する

では、コマンドプロンプトを開き.NET Coreアプリを作成しましょう。アプリケーションフォルダは「c:\Projects\example」とします。
まずdotnetコマンドが正常に動作することを確認します。以下のコマンドでバージョン情報を確認しましょう。

dotnet -version  

f:id:daigo-knowlbo:20160618121620p:plain

次にアプリケーションの作成を行います。

dotnet new  

f:id:daigo-knowlbo:20160618121659p:plain

HelloWorldアプリケーションが自動生成されました。

f:id:daigo-knowlbo:20160618125223p:plain

依存関連モジュール等の取得を行います。

dotnet restore

f:id:daigo-knowlbo:20160618121733p:plain

フォルダ構成はこんな感じになります。

f:id:daigo-knowlbo:20160618125252p:plain

そのまま実行してみましょう。

dotnet run  

f:id:daigo-knowlbo:20160618121838p:plain

Hello World!」の出力を確認することができます。

Visual Studio Codeで実行する

コマンドラインベースで作成・実行したアプリをVisual Studio Codeで実行・デバッグしたいと思います。
Visual Studio Codeを起動し「ファイル→フォルダーを開く」を選択します。

f:id:daigo-knowlbo:20160618122011p:plain

c:\Projects\exsmpleフォルダを選択します。

f:id:daigo-knowlbo:20160618125430p:plain

親切なことに、「Required assets to build and debug are missing from your project. Add them?」(君のプロジェクトにはビルド・デバッグに必要なファイルがないよ。追加する?)と聞いてきてくれます。もちろん「Yes」と答えましょう(以下の画面)。

f:id:daigo-knowlbo:20160618122407p:plain

以下の画面にあるように「.vscodeフォルダ」およびその配下に「launch.json」「tasks.json」ファイルが追加されます。

f:id:daigo-knowlbo:20160618122517p:plain
launch.jsonはVS Codeがアプリケーションをどのように起動するかの構成。tasks.jsonはいわゆるタスクランナーの設定、C#コードをビルドして、TypeScriptをコンパイルして、JSをMinifyして・・・とかいう構成です。
自動生成されたlaunch.json / tasks.jsonはすでに.NET Coreアプリとしてビルド実行する構成がいい感じに設定されています。

次にProgram.csにブレークポイントを付けて(対象行でF9)、左のペインから虫のマークの「デバッグ」を選択してデバッグ実行(F5)を行います。

f:id:daigo-knowlbo:20160618123016p:plain

↓↓↓止まりました!↓↓↓

f:id:daigo-knowlbo:20160618123149p:plain

ちなみにソースコード少し書き換えて、変数を使用し、その変数の値をウォッチしたのが以下の画面です。

f:id:daigo-knowlbo:20160618123324p:plain

素晴らしく簡単に.NET Coreアプリのデバッグ環境が整いました!

※昔Eclipse & Pythonデバッグ環境構築に苦労したことを思い出しましたが、あれは自分の知識不足だったのであろうか・・・