MSBuild
アプリケーションのコンパイル、ビルド、実行:インデックス への移動
IDE では、プロジェクトをビルドするのに、これまでの内部ビルド システムではなく、MSBuild を使用するようになりました。 IDE で利用できるビルド、コンパイル、メイクの各コマンドを実行すると、Microsoft の新しいビルド エンジンである MSBuild が呼び出され、依存関係の徹底的なチェックがそこで行われます。 MSBuild プロジェクト ファイルは XML ベースのファイルで、プロジェクトに固有の項目、プロパティ、タスク、およびターゲットを記述するセクションが含まれています。
MSBuild に関する詳細については、Microsoft ドキュメント(http://msdn.microsoft.com/en-us/default.aspx)を参照してください。
目次
MSBuild へのプロジェクトの移行
既存の Delphi プロジェクト(.bdsproj
拡張子の付いたもの)を開くと、IDE は、MSBuild を使用するように自動的にプロジェクトを変換し、プロジェクトのファイル拡張子を Delphi プロジェクトの場合は .dproj
. に、C++ プロジェクトの場合は .cbproj
. に、それぞれ変更します。
プロジェクト グループも MSBuild 対応に変換されて、プロジェクト グループの拡張子 .groupproj
が付けられます。
プロジェクトのビルド
細部の処理は IDE がすべて行うため、MSBuild について熟知していなくてもプロジェクトをビルドすることができます。 [プロジェクト|コンパイル]または[プロジェクト|再構築]コマンドは、どちらも MSBuild を呼び出しますが、 各コマンドの適用範囲は異なります。
また、.dproj
ファイルを指定して MSBuild.exe
を実行することにより、コマンド ラインからプロジェクトを明示的にビルドすることもできます。
カスタム コマンド環境で MSBuild を呼び出すには、[スタート | プログラム | Embarcadero RAD Studio Sydney | RAD Studio コマンド プロンプト を選択します。このコマンド ウィンドウ [RAD Studio コマンド プロンプト] では、MSBuild の実行可能ファイルのパスと、ユーザーのインストール ディレクトリを指す環境変数があらかじめ設定されています。
RAD Studio コマンド プロンプトを使用せず、コマンドラインから MSBuild を使用する場合は、次の環境変数を自分で設定しなければなりません:
BDS=C:\Program Files (x86)\Embarcadero\Studio\21.0
FrameworkDir=C:\Windows\Microsoft.NET\Framework\v4.0.30319
FrameworkVersion=v4.5
独自のカスタム ビルド構成の適用
[プロジェクト|オプション...] ダイアログボックスのページでは、オプションのグループを、名前付きのビルド構成に保存することができます。 デフォルトのビルド構成には、Debug と Release の 2 つがあります。 C++Builder では、Base 構成もサポートしています。 ビルド構成マネージャを使用すると、プロジェクトまたはプロジェクト グループのアクティブなビルド構成として、任意の名前付きビルド構成を選んで適用することができます。
ビルド イベントの設定とビルド出力の表示
プロジェクトをビルドすると、メッセージ ウィンドウの 出力 タブにビルド結果が表示されます。 [プロジェクト|オプション...|ビルド イベント] ダイアログボックスを使用して、ビルド前およびビルド後のイベントを指定することができます(C++Builder では、リンク前のイベントもサポートされています)。 ビルド イベントを指定した場合は、指定したコマンドとそれらの結果も メッセージ ウィンドウに表示されます。 MSBuild からの出力のレベルを制御するには、Verbosity フィールド([ツール|オプション...|環境オプション] ページ)を使用します。
ファイルの種類で決まるビルド順序
MSBuild では、以下の順序でプロジェクトをビルドします:
.RC
ファイル.ASM
ファイル.PAS
ファイル.CPP
ファイル
[プロジェクト マネージャ] に表示されているフォルダ ノードが上から下に順にビルドされていきます。 各フォルダ内のファイルは、その種類に応じた順序でビルドされます。 プロジェクト マネージャ でファイルを別のフォルダや仮想フォルダに入れることで、ビルド順序を制御することができます。