複数のスタートアップ プロジェクトを設定する

Visual Studio では、F5 キー ([デバッグありで開始])、または Ctrl+F5 キー ([デバッグなしで開始]) を押したとき、または、ツール バーのボタンを使用してアプリケーションを起動するときに、複数のプロジェクトを実行する方法を指定できます。 このようにして、デバッグ セッションやローカルでの実行およびテストの際に、相互依存している複数のサイト、アプリ、サービスを起動し、正常に動作させることができます。

一部のプロジェクト テンプレートには、既に起動時に開始されるように構成されている複数のプロジェクトが含まれています。たとえば、React and ASP.NET Core プロジェクト タイプには、 クライアント側の JavaScript プロジェクトとサーバー側の ASP.NET Core プロジェクトが含まれており、その両方が起動時に開始されます。

複数のスタートアップ プロジェクトを設定するには

  1. ソリューション エクスプローラーで、ソリューション (最上位ノード) を選びます。

  2. ソリューション ノードのコンテキスト (右クリック) メニューを選択し、[プロパティ] を選択します。 [ソリューション プロパティ ページ] ダイアログ ボックスが表示されます。

    ソリューション プロパティ ページ

  3. [共通プロパティ] ノードを展開し、[スタートアップ プロジェクト] を選択します。

  4. [マルチ スタートアップ プロジェクト] オプションを選択し、適切なアクションを設定します。

複数プロジェクト起動プロファイル

複数プロジェクトのソリューション内の特定のプロジェクトを、デバッグ用に事前定義された状態で起動するためのプロファイルを設定して保存できます。 これにより、複雑なソリューションの処理が簡素化され、デバッグの効率が向上し、チーム メンバー間で構成を簡単に共有できるようになります。

複数プロジェクト起動プロファイルを有効にする

複数プロジェクト起動プロファイルは、Visual Studio 2022 17.11 以降で使用できます。 複数プロジェクト起動プロファイル機能を有効または無効にするには、[ツール] > [オプション] > [プレビュー機能] に移動し、[複数起動プロファイルを有効にする] チェックボックスをオンにします。

[ツール オプション] ダイアログで複数プロジェクト起動プロファイルを有効にするオプションを示すスクリーンショット。

複数プロジェクト起動プロファイルを作成する

  1. 複数のプロジェクトを含む Visual Studio ソリューションを開きます。

  2. ソリューション エクスプローラーでソリューションを右クリックし、 [スタートアップ プロジェクトの設定...] を選択します。

    Ctrl+Q キー (クイック起動) を押し、[機能検索] で [スタートアップ プロジェクトの構成] を検索することもできます。

    機能検索でのスタートアップ プロジェクトの構成の検索を示すスクリーンショット。

    [ソリューション プロパティ ページ] ダイアログが表示されます。

  3. [ソリューション プロパティ ページ] で、[共通プロパティ] タブをクリックし、[スタートアップ プロジェクトの構成] を選択します。

  4. [スタートアップ プロジェクトの構成] セクションで、[マルチ スタートアップ プロジェクト] ラジオ ボタンを選択します。

    [マルチ スタートアップ プロジェクト] ラジオ ボタンを示すスクリーンショット。

    ラジオ ボタンの下には、ソリューション内のすべてのプロジェクトの一覧と、F5 キーを押したときに起動するように設定されているかどうか、および各プロジェクトがデバッグありとデバッグなしのどちらで起動されるかが表示されます。

    上下の矢印を使用して、プロジェクトを起動する順序を制御できます。

  5. 各プロジェクトのアクションを [開始][デバッグなしで開始]、または [なし] に設定し、要件に応じてデバッグ ターゲットを選択します。

    プロジェクトを開始するためのオプションを示すスクリーンショット。

  6. ソース管理リポジトリ内の構成ファイルにプロファイルをチェックインして、プロファイルを他の Visual Studio ユーザーと共有する場合は、[プロファイルの共有] チェック ボックスをオンにします。 起動プロファイルは、ソリューションと同じディレクトリ内に、拡張子 .slnLaunch の JSON ファイルとして保存されます。 [プロファイル の共有] チェック ボックスによって、プロファイルがユーザー固有のファイルとして保存されるのか (オフ)、Git などのソース管理追跡用のファイルとして保存されるのか (オン) が決まります。

    [ソリューション プロパティ ページ] ダイアログの [プロファイルの共有] チェック ボックスを示すスクリーンショット。

    .slnLaunch ファイルのプロパティの例を以下に示します。

    [
       {
          "Name": "Feature Profile",
          "Projects": [
             {
             "Path": "src\\OrchardCore.Cms.Web\\OrchardCore.Cms.Web.csproj",
             "Action": "Start"
             },
             {
             "Path": "src\\OrchardCore\\OrchardCore.DisplayManagement\\OrchardCore.DisplayManagement.csproj",
             "Action": "Start"
             },
             {
             "Path": "src\\OrchardCore\\OrchardCore.Data\\OrchardCore.Data.csproj",
             "Action": "StartWithoutDebugging"
             },
             {
             "Path": "src\\OrchardCore\\OrchardCore.ContentManagement.Display\\OrchardCore.ContentManagement.Display.csproj",
             "Action": "Start"
             }
          ]
       }
    ]
    
  7. 各プロジェクトのスタートアップ アクションを構成したら、[OK] または [適用] ボタンをクリックしてプロファイルを保存します。 作成された起動プロファイルがツール バーのドロップダウン リストに表示され、デバッグするプロファイルを選択できるようになります。

    ツール バーの起動プロファイルを示すスクリーンショット。

Docker Compose の使用

ローカル コンピューター上でコンテナー化されていないプロジェクトを起動するのに Docker Compose を使用している場合、別の方法を使用して (起動プロファイル)、複数のプロジェクトを開始します。

次の例は、3 つのプロジェクト (フロントエンド Web サイト、Web API プロジェクト、Docker Compose プロジェクト) を含むソリューション WebFrontEndA を示しています。 次のスクリーンショットは、3 つのプロジェクトのうち 2 つを開始する方法を示しています。1 つはデバッグありで、もう 1 つはなしです。

ソリューション プロパティ ページのスクリーンショット。

この例とその他の Docker Compose シナリオでは、単一のスタートアップ プロジェクトとして docker-compose を選択した場合、開始するプロジェクトまたはサービスを指定するには別の方法を使用します。 Docker Compose の起動プロファイルを使用して、開始するサービスと、デバッガーをアタッチするかどうかを決定します。Visual Studio には、それを構成するための別のダイアログがあります。 サービスのサブセットの開始に関するページを参照してください。 ソリューション プロパティ ページ ダイアログは、コンテナー化されていないソリューションの場合、またはスタートアップの管理に Docker Compose を使用して "いない" 場合にのみ使用されます。