このチュートリアルに従って Visual Studio Code で .NET コンソール アプリケーションのデバッグを試してみたときのトラブルと解決方法について。
https://docs.microsoft.com/ja-jp/dotnet/core/tutorials/debugging-with-visual-studio-code
https://docs.microsoft.com/ja-jp/dotnet/core/tutorials/with-visual-studio-code
トラブルの概要:
・ task.jsonが無い
・ launch: launch.json must be configured. Change 'program' to the path to the executable file that you would like to debug.
チュートリアルの手順に従ってHelloWorldのコンソールアプリのデバッグ環境構築を進めたつもりが、
"実行とデバッグ"で、次の画面。(実行とデバッグ画面ボタンを押すと、ほとんど何も書かれていないlaunch.jsonが開かれる。)
しかたなく構成の追加から.NET launch .Net Core Console App を選択すると、定義が追加される。
選択後のlaunch.jsonの内容(これではダメ)
ここでデバッグの開始(左上の緑の矢印)をクリックすると次のエラー。
タスク'build'が見つけられませんでした。
確かに、エクスプローラーで見ると、task.jsonがない。
強引に"このままデバッグ"をクリックすると次のエラー。
launch: launch.json must be configured. Change 'program' to the path to the executable file that you would like to debug.
そういえば、チュートリアルには、csファイルを開くと必要なC#拡張機能がインストール、ロードされる画面があるが、表示されなかったので、手動で追加した。
解決方法:
単純だけど、Visual Studio Code をアンインストールして、最新版 をインストール。
チュートリアルのある通りの手順でコンソールアプリを作成したらうまくいった。
実際に実行した手順は次。
C#拡張機能をインストール。実際にインストールしたのは次の4つ。
"C#" C# for Visual Studio Code (powered by OmniSharp) は必須のようだ。
.NET Extension Pack と .NET interactive Notebooks は Microsoft製だったので入れてみた。本当に必要かは不明。
cs-Script はついでに入れただけ。本当に必要かは不明。
チュートリアルの手順で次々と進める。
・[フォルダーを開く] ダイアログで、HelloWorld フォルダーを作成し、 [フォルダーの選択] をクリックします。
・メイン メニューで [表示] > [ターミナル] の順に選択して、
dotnet new console --framework net5.0
・左ペイン エクスプローラーから Program.csをクリック。
・[重要] プロジェクト選択の画面が出る。(これがチュートリアルには無い。また、失敗したときは出なかった。) ALTなど余計なキーを押してしまうと消えるので注意。
All の方を選択。プロジェクト名は試行錯誤の途中でHeとなっているが気にしないこと。
・[重要] アプリのビルドとデバッグに必要なアセットの追加を求められたら、 [はい] を選択
(失敗したときはこの選択ダイアログが出なかった。)
・launch.json 及び tasks.jsonが出来ている。ファイルの中身も自動的に追加されている。
・launch.json の 記述を一部変更。
"console": "integratedTerminal",
・Program.csを名前を入力して表示する拡張版に変更する。
Program.cs の Main
メソッドの内容 (Console.WriteLine
を呼び出す行) を以下のコードに置き換え
Console.WriteLine("What is your name?");
var name = Console.ReadLine();
var currentDate = DateTime.Now;
Console.WriteLine($"{Environment.NewLine}Hello, {name}, on {currentDate:d} at {currentDate:t}!");
Console.Write($"{Environment.NewLine}Press any key to exit...");
Console.ReadKey(true);
・ブレークポイントを設定して"実行とデバッグ"
・ブレークポイントでちゃんと止まっている。
Program.csを最初にクリックしたときに出るはずの "プロジェクトドロップダウンリスト" とその直後の"アプリのビルドとデバッグに必要なアセットの追加"を見逃さないこと。
ALTとか、不要なキーを押してしまうと消えてしまうようだ。
以上