ビルド出力ディレクトリを変更する

(デバッグ、リリース、またはその両方の) 構成ごとにプロジェクトによって生成された出力の場所を指定できます。

ビルド出力ディレクトリを変更する

  1. プロジェクトのプロパティ ページを開くには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[プロパティ] を選択します。

  2. プロジェクトの種類に基づいてタブを選択します。

    • C# の場合、[ビルド] タブを選択します。
    • Visual Basic の場合、[コンパイル] タブを選択します。
    • C++ または JavaScript の場合、[全般] タブを選択します。
  3. 上部にある構成のドロップダウンで、出力ファイルの場所を変更する構成を選択します (デバッグリリース、またはすべての構成)。

  4. ページで出力パス エントリを見つけます。これはプロジェクトの種類によって異なります。

    • C# プロジェクトと JavaScript プロジェクトの出力パス
    • Visual Basic プロジェクトのビルド出力パス
    • Visual C++ プロジェクトの出力ディレクトリ

    出力の生成先とするパスを入力するか (ルート プロジェクト ディレクトリの絶対パスまたは相対パス)、[参照] を選択し、そのフォルダーを参照します。

    Visual Studio C# プロジェクトの出力パス プロパティ

    Note

    既定では、一部のプロジェクトで、フレームワークとランタイムがビルド パスに含まれます。 これを変更するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[プロジェクト ファイルの編集] を選択して、以下を追加します。

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

ヒント

指定した場所に出力が生成されない場合、Visual Studio のメニュー バーで選択し、該当する構成 (デバッグリリースなど) を構築していることを確認してください。

Visual Studio 2019 のビルド構成ピッカー。

ビルド出力ディレクトリを変更する

Visual Studio 2022 では、プロジェクトの種類により、プロジェクト デザイナーのユーザー インターフェイスが異なります。 C# .NET Framework およびすべての Visual Basic のプロジェクトでは従来の .NET プロジェクト デザイナーが使用されますが、C# .NET Core (および .NET 5 以降) のプロジェクトでは、現在の .NET プロジェクト デザイナーが使用されます。 C++ プロジェクトでは、独自のプロパティ ページのユーザー インターフェイスが使用されます。 このセクションの手順は、どのプロジェクト デザイナーを使用しているかによって異なります。

現在の .NET プロジェクト デザイナーを使用してビルド出力ディレクトリを変更するには

  1. ソリューション エクスプローラーでプロジェクト ノードを右クリックして、[プロパティ] を選択します。

  2. [ビルド] セクションを展開し、[出力] サブセクションまで下方向にスクロールします。

  3. C# の基本出力パスを見つけ、出力の生成先とするパスを入力するか (ルート プロジェクト ディレクトリの絶対パスまたは相対パス)、代わりに [参照] を選択してそのフォルダーを参照します。 なお、実際の出力パスは、基本出力パスに構成名が追加され生成されます。

    .NET Core C# プロジェクトの [出力パス] プロパティを示すスクリーンショット。

    Note

    既定では、一部のプロジェクトで、フレームワークとランタイムがビルド パスに含まれます。 これを変更するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[プロジェクト ファイルの編集] を選択して、以下を追加します。

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

ヒント

指定した場所に出力が生成されない場合、Visual Studio のメニュー バーで選択し、該当する構成 (デバッグリリースなど) を構築していることを確認してください。

Visual Studio 2022 のビルド構成ピッカーを示すスクリーンショット。

従来の .NET プロジェクト デザイナーまたは C++ プロパティ ページを使用してビルド出力ディレクトリを変更するには

  1. ソリューション エクスプローラーでプロジェクト ノードを右クリックして、[プロパティ] を選択します。

  2. プロジェクトの種類に基づいてタブを選択します。

    • C# の場合、[ビルド] タブを選択します。
    • Visual Basic の場合、[コンパイル] タブを選択します。
    • C++ または JavaScript の場合、[全般] タブを選択します。
  3. 上部にある構成のドロップダウンで、出力ファイルの場所を変更する構成を選択します (デバッグリリース、またはすべての構成)。

  4. ページで出力パス エントリを見つけます。これはプロジェクトの種類によって異なります。

    • C# プロジェクトと JavaScript プロジェクトの出力パス
    • Visual Basic プロジェクトのビルド出力パス
    • Visual C++ プロジェクトの出力ディレクトリ

    出力の生成先とするパスを入力するか (ルート プロジェクト ディレクトリの絶対パスまたは相対パス)、[参照] を選択し、そのフォルダーを代わりに参照します。

    C# .NET Framework プロジェクトの出力パス プロパティを示すスクリーンショット。

    Note

    既定では、一部のプロジェクトで、フレームワークとランタイムがビルド パスに含まれます。 これを変更するには、ソリューション エクスプローラーでプロジェクト ノードを右クリックし、[プロジェクト ファイルの編集] を選択して、以下を追加します。

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

共通出力ディレクトリへのビルド

既定では、Visual Studio は、ソリューションの各プロジェクトを、そのソリューション内の独自のフォルダーにビルドします。 プロジェクトのビルド出力パスを変更して、すべての出力を強制的に同じフォルダーに配置することができます。

すべてのソリューション出力を共通ディレクトリに配置するには

  1. ソリューションのいずれかのプロジェクトをクリックします。

  2. [プロジェクト] メニューの [プロパティ] をクリックします。

  3. 各プロジェクトで、その種類に応じて [コンパイル] または [ビルド] を選択し、[出力パス] または [基本出力パス] をソリューション内のすべてのプロジェクトで使用するフォルダーに設定します。

  4. プロジェクトのプロジェクト ファイルを開き、1 つ目のプロパティ グループに以下のプロパティ宣言を追加します。

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    UseCommonOutputDirectorytrue に設定することで、複数のプロジェクト出力を同じフォルダーに配置していることを Visual Studio とその基となるビルド エンジン (MSBuild) に伝え、プロジェクトが他のプロジェクトに依存している場合に通常発生するコピー手順を MSBuild で省略するようにします。

  5. ソリューションのすべてのプロジェクトに対して、手順 1 から 4 を繰り返します。 共通の出力ディレクトリを使ってはならない例外的なプロジェクトがある場合は、一部のプロジェクトをスキップすることができます。

プロジェクト (.NET プロジェクト) の中間出力ディレクトリを設定するには

  1. プロジェクト ファイルを開きます。

  2. 最初のプロパティ グループに次のプロパティ宣言を追加します。

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    パスはプロジェクト ファイルからの相対パスですが、絶対パスを使うこともできます。 パスにプロジェクト名を含める場合は、MSBuild プロパティ $(MSBuildProjectName)$(MSBuildProjectDirectory) を使って参照できます。 使用できるその他のプロパティについては、「MSBuild の予約済みおよび既知のプロパティ」を参照してください。

  3. Visual Studio でビルドすると、プロジェクト フォルダー以下に obj フォルダーが作成されますが、空です。 これはビルド処理の一環で削除することができます。 そのためには、次のコマンドを実行するビルド後イベントを追加する方法があります。

    rd "$(ProjectDir)obj" /s /q
    

    カスタム ビルド イベントを指定する」を参照してください。