プロジェクト管理
Visual Studio Code で C# アプリケーションを作成する場合、まずはプロジェクトから始めます。プロジェクトには、実行可能ファイル、ライブラリ、または Web サイトにコンパイルされるすべてのファイル (ソース コード、画像など) が含まれています。関連するすべてのプロジェクトは、ソリューションと呼ばれるコンテナーに格納できます。この記事では、ソリューション エクスプローラー ビューを使用して、すべてのプロジェクトとその関連ファイルを管理する方法について説明します。
注: VS Code でソリューション エクスプローラー ビューを使用するには、C# Dev Kit 拡張機能が必要です。
ソリューション エクスプローラー
新しい C# Dev Kit 拡張機能には、プライマリ サイドバーに新しいビューであるソリューション エクスプローラーが含まれています。このビューは、アプリケーション、そのソリューション、およびプロジェクトの構造化されたビューを提供し、労力をかけずに一元的なプロジェクト管理を実現します。.NET ソリューション ファイルまたはプロジェクト ファイルを含むワークスペースを開くと、ソリューション エクスプローラーが自動的に表示されます。
ワークスペースに単一のソリューション ファイル (.sln ファイル) がある場合、ワークスペースの読み込み後にソリューション エクスプローラーがそのファイルを検出し、自動的に読み込みます。たとえば、単一のソリューション ファイルを含むワークスペースを開くエクスペリエンスを示す以下の動画をご覧ください。
上記の動画では、ワークスペースが初めて VS Code に読み込まれました。ワークスペースが読み込まれた後、ソリューション エクスプローラーが単一の .sln
ファイルを検出し、それを自動的に読み込みます。
ワークスペースに複数のソリューション ファイルがある場合、読み込む特定のソリューション ファイルを選択するように求められます。ワークスペース用にソリューション ファイルが読み込まれると、拡張機能は最後に読み込まれたソリューション ファイルを記憶し、VS Code でワークスペースが読み込まれると自動的にそのファイルを再読み込みします。以下の動画では、複数のソリューション ファイルを含むワークスペースを初めて開くエクスペリエンスを確認できます。
上記の動画では、ワークスペースが読み込まれた後、ソリューション エクスプローラーがワークスペースに複数のソリューション ファイルが含まれていることを検出し、標準の VS Code 通知で読み込むソリューションを選択するように求められます。今後、同じワークスペースを開くと、ソリューション エクスプローラーは最後に読み込まれたソリューション ファイルを記憶し、それを自動的に再読み込みします。
ソリューション エクスプローラーにソリューションが読み込まれており、そのソリューションを閉じたい場合は、ソリューションを閉じるコマンドを使用できます。このコマンドは、ソリューション エクスプローラーでソリューションを右クリックすると、コンテキスト メニューに表示されます。
このコマンドはコマンド パレットでも呼び出すことができます。コマンド パレットは、⇧⌘P (Windows、Linux の場合は Ctrl+Shift+P) で開くことができます。これを以下の画像に示します。
ソリューションを閉じると、ソリューション エクスプローラーにボタンが表示され、後でワークスペースからソリューション ファイルを開くことができます。また、コマンド パレットで .NET: ソリューションを開くコマンドを使用してこのコマンドを呼び出すこともできます。
ソリューションを開くコマンドを呼び出すと、ワークスペースに単一のソリューション ファイルがある場合は、それが自動的に読み込まれます。複数のソリューション ファイルがある場合は、読み込むソリューション ファイルを選択するように求められます。これは、単一または複数のソリューション ファイルを含むワークスペースを初めて開く場合と同じエクスペリエンスです。次に、ソリューション エクスプローラーでのソリューション フォルダーのサポートについて説明しましょう。
ソリューション フォルダー
ソリューション エクスプローラーで、ソリューションにソリューション フォルダー (ソリューション内のプロジェクトをグループ化するために使用される仮想フォルダー) が含まれている場合、それらが表示されます。ここでは、ソリューション フォルダーの内容を操作できます。新しいソリューション フォルダーを追加するには、ソリューションを右クリックして、新しいソリューション フォルダーメニュー項目を選択します。以下の短い動画をご覧ください。
上記の動画では、「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
を使用します。パッケージ参照を削除する方法とパッケージを削除する方法で詳細情報を参照できます。
プロジェクト ファイルを表示または編集したい場合は、ソリューション エクスプローラーでプロジェクト ノードを選択すると、エディターでプロジェクト ファイルが開きます。これは、ソリューション エクスプローラーでファイルを選択した場合と同じ動作です。
ソリューション エクスプローラーを使用すると、コンテキスト メニューを使用して、ビルド、リビルド、クリーンなどの一般的なアクションを実行することもできます。これらのコンテキスト メニューは、ソリューション エクスプローラーでソリューション ノードまたはプロジェクト ノードを選択した場合に表示されます。これにより、選択された項目とその依存関係がビルド/リビルド/クリーンされます。