プロジェクト管理
Visual Studio Code で C# アプリケーションを作成する場合、まず **プロジェクト** から始めます。プロジェクトには、実行可能ファイル、ライブラリ、または Web サイトにコンパイルされるすべてのファイル (ソース コード、画像など) が含まれます。関連するすべてのプロジェクトは、**ソリューション** というコンテナーに格納できます。この記事では、**ソリューション エクスプローラー** ビューを使用して、すべてのプロジェクトとそれぞれのファイルを管理する方法を説明します。
注: VS Code でソリューション エクスプローラー ビューを使用するには、C# Dev Kit 拡張機能が必要です。
ソリューション エクスプローラー
新しい C# Dev Kit 拡張機能には、プライマリ サイドバーに新しいビューである **ソリューション エクスプローラー** が含まれています。このビューでは、アプリケーション、そのソリューション、およびプロジェクトが構造化されて表示されるため、プロジェクトの一元管理を簡単に行うことができます。.NET ソリューション ファイルまたはプロジェクト ファイルを含むワークスペースを開くと、ソリューション エクスプローラーが自動的に表示されます。
ワークスペースにソリューション ファイル (.sln ファイル) が 1 つだけ存在する場合、ソリューション エクスプローラーはそのファイルを検出し、ワークスペースの読み込み後に自動的に読み込みます。たとえば、以下の動画は、単一のソリューション ファイルを含むワークスペースを開くときの動作を示しています。
上の動画では、ワークスペースが初めて VS Code に読み込まれました。ワークスペースが読み込まれた後、ソリューション エクスプローラーは唯一の .sln
ファイルを検出し、自動的に読み込みます。
ワークスペースに複数のソリューション ファイルがある場合、読み込む特定のソリューション ファイルを選択するように求められます。ワークスペースに対してソリューション ファイルが一度読み込まれると、拡張機能は最後に読み込まれたソリューション ファイルを記憶し、次回 VS Code でワークスペースを読み込むときにそのファイルを自動的に再読み込みします。以下の動画では、複数のソリューション ファイルを含むワークスペースを初めて開くときの動作を確認できます。
上の動画では、ワークスペースが読み込まれた後、ソリューション エクスプローラーはワークスペースに複数のソリューション ファイルが含まれていることを検出し、標準の VS Code 通知で読み込むソリューションを選択するように促されます。今後、同じワークスペースを開くと、ソリューション エクスプローラーは最後に読み込まれたソリューション ファイルを記憶し、自動的に再読み込みします。
ソリューション エクスプローラーでソリューションを読み込んでいるときに、そのソリューションを閉じたい場合は、**ソリューションを閉じる** コマンドを使用できます。このコマンドは、ソリューション エクスプローラーでソリューションを右クリックしたときのコンテキスト メニューにあります。
このコマンドは、コマンド パレットから呼び出すこともできます。コマンド パレットは ⇧⌘P (Windows、Linux では Ctrl+Shift+P) で開くことができます。次の画像にこれを示します。
ソリューションを閉じた後、ソリューション エクスプローラーにはボタンが表示され、後でワークスペースからソリューション ファイルを開くことができます。このコマンドは、コマンド パレットから **.NET: Open Solution** コマンドで呼び出すこともできます。
**Open Solution** コマンドを呼び出すと、ワークスペースにソリューション ファイルが 1 つしかない場合は、自動的にそのファイルが読み込まれます。複数のソリューション ファイルがある場合は、読み込むソリューション ファイルを選択するように求められます。これは、1 つ以上のソリューション ファイルを含むワークスペースを初めて開くときと同じ動作です。次に、ソリューション エクスプローラーでのソリューション フォルダーのサポートについて説明します。
ソリューション フォルダー
ソリューション エクスプローラーでは、ソリューションにソリューション フォルダー (ソリューション内のプロジェクトをグループ化するために使用される仮想フォルダー) が含まれている場合、それらが表示されます。ここでは、ソリューション フォルダーのコンテンツを操作できます。新しいソリューション フォルダーを追加するには、ソリューションを右クリックし、**新しいソリューション フォルダー** メニュー項目を選択します。下の短い動画をご覧ください。
上の動画では、「tests」という名前の新しいソリューション フォルダーが作成されました。ソリューション フォルダーを作成した後、**既存のプロジェクトの追加** コンテキスト メニューを使用してプロジェクトを追加できます。以下の動画はこの操作を示しています。
次の画像に示すように、**新しいファイルの追加** コンテキスト メニューを使用して、ソリューション フォルダーに新しいファイルを追加することもできます。
このコマンドを呼び出すと、コマンド パレットで使用するファイル テンプレートを選択するように求められます。下の画像にこれを示します。
このリストには、拡張機能が現在ソリューション フォルダーでサポートしているファイル テンプレートが表示されます。テンプレートを使用せずにファイルを作成する (空のファイルを作成する) には、**カスタム ファイル (テンプレートなし)** を選択します。
ソリューション フォルダーを削除するには、**削除** コンテキスト メニュー オプションを使用できます。
ソリューションからソリューション フォルダーを削除すると、そのソリューション フォルダーとコンテンツはソリューションから削除されます。そこに含まれるファイルやプロジェクトは、ディスクから削除されません。ソリューション フォルダーについて説明したので、次にソリューション エクスプローラーでプロジェクトをさらに操作する方法を見ていきましょう。
プロジェクトの操作
ソリューション エクスプローラーには、プロジェクトを操作するための機能が多数あります。ソリューションを初めて開くと、プロジェクトとソリューション フォルダーが表示されます。ソリューション フォルダーまたはプロジェクトを展開して、その内容を表示できます。下の画像は、いくつかのノードが展開されたソリューション エクスプローラーを示しています。
上の画像では、いくつかのソリューション フォルダーと TemplatesWeb
プロジェクトが展開されたソリューション エクスプローラーが表示されています。このリリースでは、ファイルのネストのサポートは最小限ですが、Visual Studio IDE で見られるファイルのネストとより一貫性を持たせるために、そのサポートを拡張していく予定です。
ここから、ソリューション エクスプローラーでファイルをダブルクリックして開くことができます。また、ソリューション エクスプローラー内の項目を右クリックして、利用可能なアクションのコンテキスト固有のメニューを表示することもできます。たとえば、プロジェクトに新しいファイルを追加するには、プロジェクトを右クリックして **新しいファイルの追加** を選択します。そのオプションを選択すると、既定のコンテンツに使用するファイル テンプレートを選択するように求められます。.NET 7.0.200 以上をターゲットとするプロジェクトで作業している場合、ここで最適なエクスペリエンスが得られます。
また、VS Code で通常どおりファイルを作成し、プロジェクト ファイルを含むフォルダーの下に保存することで、プロジェクトにファイルを追加することもできます。既定では、プロジェクト フォルダーに追加された新しいファイルは、自動的にプロジェクトに追加されます。
プロジェクト ビューでは、プロジェクトが持つ **プロジェクト参照** と **パッケージ参照** の両方の依存関係も確認できます。このバージョンの C# Dev Kit では、依存関係を変更することはできません。プロジェクトまたはパッケージ参照に依存関係を追加するには、dotnet add
コマンドライン ツールを使用できます。パッケージ参照を追加するには dotnet add package command - .NET CLI を、プロジェクト参照を追加するには dotnet add reference command - .NET CLI を参照してください。参照を削除するには、dotnet remove
を使用します。詳細については、パッケージ参照を削除する方法 と パッケージを削除する方法 を参照してください。
プロジェクト ファイルを表示または編集したい場合は、ソリューション エクスプローラーでプロジェクト ノードを選択すると、エディターでプロジェクト ファイルが開きます。これは、ソリューション エクスプローラーでファイルを選択したときと同じ動作です。
ソリューション エクスプローラーを使用して、コンテキスト メニューから **ビルド**、**リビルド**、**クリーン** などの一般的なアクションを実行することもできます。これらのコンテキスト メニューは、ソリューション エクスプローラーでソリューション ノードまたはプロジェクト ノードを選択したときに表示されます。これにより、選択した項目とその依存関係がビルド/リビルド/クリーンされます。