次の方法で共有


チュートリアル: MSBuild を使用した Visual C++ プロジェクトの作成

更新 : 2011 年 4 月

このチュートリアルでは、MSBuild を使用して、コマンド プロンプトで Visual C++ プロジェクトをビルドする方法を説明します。 まず、Visual C++ コンソール アプリケーション用の C++ ソース ファイルと XML ベースのプロジェクト ファイルを作成する方法を学習します。 次に、プロジェクトをビルドしてから、ビルド処理をカスタマイズする方法を学習します。

このチュートリアルでは、次の作業について説明します。

  • プロジェクトの C++ ソース ファイルの作成。

  • XML MSBuild プロジェクト ファイルの作成。

  • MSBuild を使用したプロジェクトのビルド。

  • MSBuild を使用したプロジェクトのカスタマイズ。

必須コンポーネント

このチュートリアルを完了するための要件は次のとおりです。

  • Visual Studio 2010

  • MSBuild システムの基本的な知識

C++ ソース ファイルの作成

このチュートリアルでは、ソース ファイルとヘッダー ファイルがあるプロジェクトを作成します。 main.cpp という名前のソース ファイルには、コンソール アプリケーションの main 関数を含めます。 main.h という名前のヘッダー ファイルには、iostream ヘッダー ファイルをインクルードするためのコードを含めます。 これらの C++ ファイルは、Visual Studio またはテキスト エディターを使用して作成できます。

プロジェクトの C++ ソース ファイルを作成するには

  1. プロジェクトのディレクトリを作成します。

  2. main.cpp という名前のファイルを作成し、このファイルに次のコードを追加します。

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. main.h という名前のファイルを作成し、このファイルに次のコードを追加します。

    // main.h: the application header code.
    /* Additional source code to include. */
    

プロジェクト ファイルXML MSBuild プロジェクト ファイルの作成

MSBuild プロジェクト ファイルは、プロジェクトのルート要素 (<Project>) が含まれる XML ファイルです。 次の例に示すプロジェクトでは、<Project> 要素に 7 個の子要素が含まれています。

  • 3 個の項目グループ タグ (<ItemGroup>) によって、プロジェクトの構成とプラットフォーム、ソース ファイル名、およびヘッダー ファイル名が指定されます。

  • 3 個のインポート タグ (<Import>) によって、Microsoft Visual C++ 設定の場所が指定されます。

  • 1 個のプロパティ グループ タグ (<PropertyGroup>) によって、プロジェクト設定が指定されます。

MSBuild プロジェクト ファイルを作成するには

  1. テキスト エディターを使用して myproject.vcxproj という名前のプロジェクト ファイルを作成し、次のルート <Project> 要素を追加します。 次のプロシージャ ステップの要素をルート <Project> タグの間に挿入します。

    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    </Project>
    
  2. 次の 2 個の <ProjectConfiguration> 子要素を <ItemGroup> 要素に追加します。 この子要素は、32 ビットの Windows オペレーティング システムのデバッグおよびリリース構成を指定します。

    <ItemGroup>
       <ProjectConfiguration Include="Debug|Win32">
          <Configuration>Debug</Configuration>
          <Platform>Win32</Platform>
       </ProjectConfiguration>
       <ProjectConfiguration Include="Release|Win32">
          <Configuration>Release</Configuration>
          <Platform>Win32</Platform>
       </ProjectConfiguration>
    </ItemGroup>
    
  3. このプロジェクトの既定の C++ 設定のパスを指定する次の <Import/> 要素を追加します。

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. 2 個のプロジェクト プロパティを指定する次のプロパティ グループ要素 (<PropertyGroup>) を追加します。

    <PropertyGroup>
       <ConfigurationType>Application</ConfigurationType>
       <ShowAllFiles>false</ShowAllFiles>
    </PropertyGroup>
    
  5. このプロジェクトの現在の C++ 設定のパスを指定する次の <Import/> 要素を追加します。

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. 次の <ClCompile> 子要素を <ImportGroup> 要素に追加します。 この子要素は、コンパイルする C/C++ ソース ファイルの名前を指定します。

    <ItemGroup>
       <ClCompile Include="main.cpp" />
    </ItemGroup>
    
  7. 次の <ClInclude> 子要素を <ImportGroup> 要素に追加します。 この子要素は、C/C++ ソース ファイルに対応するヘッダー ファイルの名前を指定します。

    <ItemGroup>
       <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. このプロジェクトのターゲットを定義するファイルのパスを指定する次の <Import> 要素を追加します。

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
    

完成したプロジェクト ファイル

次のコードは、前の手順で作成したプロジェクト ファイルのすべての内容です。

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
  <PropertyGroup>
    <ConfigurationType>Application</ConfigurationType>
    <ShowAllFiles>false</ShowAllFiles>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)/Microsoft.Cpp.props" />
  <ItemGroup>
    <ClCompile Include="main.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="main.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>

MSBuild を使用したプロジェクトのビルド

コマンド プロンプトで次のコマンドを入力して、コンソール アプリケーションをビルドします。

msbuild myproject.vcxproj /p:configuration=debug

MSBuild は、出力ファイルのディレクトリを作成し、プロジェクトをコンパイルおよびリンクして Myproject.exe プログラムを生成します。 ビルド処理が完了したら、次のコマンドを使用してアプリケーションを実行します。

myproject

アプリケーションによって、コンソール ウィンドウに "Hello, from MSBuild!" と表示されます。

プロジェクトのカスタマイズ

MSBuild では、定義済みのビルド ターゲットを実行したり、ユーザー定義のプロパティを適用したりできるほか、カスタム ツール、イベント、およびビルド ステップを使用することができます。 このセクションでは、次の作業について説明します。

  • MSBuild とビルド ターゲットの併用。

  • MSBuild とビルド プロパティの併用。

  • MSBuild と他のツールセットの併用。

  • MSBuild のカスタマイズの追加。

MSBuild とビルド ターゲットの併用

ビルド ターゲットは、ビルド時に実行できる定義済みまたはユーザー定義のコマンドの名前付きセットです。 ターゲット コマンド ライン オプション (/t) を使用して、ビルド ターゲットを指定します。 myproject サンプル プロジェクトの場合、定義済みの clean ターゲットがデバッグ フォルダーのすべてのファイルを削除し、新しいログ ファイルを作成します。

コマンド プロンプトで次のコマンドを入力して、myproject を削除します。

msbuild myproject.vcxproj /t:clean

MSBuild とビルド プロパティの併用

プロパティ コマンド ライン オプション (/p) によって、プロジェクト ビルド ファイルのプロパティをオーバーライドできます。 myproject サンプル プロジェクトでは、Configuration プロパティによってリリース用またはデバッグ用のビルド構成が指定されます。 また、ビルド済みアプリケーションを実行するためのオペレーティング システムが、Platform プロパティで指定されます。

コマンド プロンプトで次のコマンドを入力して、32 ビット Windows で実行される予定の myproject アプリケーションのデバッグ ビルドを作成します。

msbuild myproject.vcxproj /p:configuration=debug /p:platform=win32

myproject サンプル プロジェクトが、64 ビット Windows の構成と、別の myplatform という名前のカスタム オペレーティング システムの構成も定義していると想定します。

コマンド プロンプトで次のコマンドを入力して、64 ビット Windows で実行するリリース ビルドを作成します。

msbuild myproject.vcxproj /p:configuration=release /p:platform=x64

コマンド プロンプトで次のコマンドを入力して、myplatform のリリース ビルドを作成します。

msbuild myproject.vcxproj /p:configuration=release /p:platform=myplatform

MsBuild と他のツールセットの併用

Visual C++ 9.0 と 10.0 の両方のライブラリ (ツールセット) がインストールされている場合、MSBuild は Visual C++ 9.0 と 10.0 のどちらかのアプリケーションをビルドできます。 Visual C++ 9.0 ツールセットを指定するには、次のプロパティ グループ要素を Myproject.vcxproj プロジェクト ファイルの Microsoft.Cpp.props の <Import /> 要素の後に追加します。

<PropertyGroup>
    <PlatformToolset>v90</PlatformToolset>
</PropertyGroup>

Visual C++ 9.0 ツールセットでプロジェクトをビルドし直すには、次のコマンドのいずれかを入力します。

msbuild myproject.vcxproj /p:PlatformToolset=v90 /t:rebuild 
msbuild myproject.vcxproj /t:rebuild

MSBuild のカスタマイズの追加

MSBuild では、さまざまな方法でビルド処理をカスタマイズできます。 次のトピックでは、MSBuild プロジェクトにカスタム ビルド ステップ、ツール、およびイベントを追加する方法を示します。

履歴の変更

日付

履歴

理由

2011 年 4 月

最初のコード スニペットで "xmlns" 属性に引用符を追加しました。

カスタマー フィードバック