BuildConsole (Visual Studio)
ここでは「BuildConsole.exe」(Incredibuild のインストール フォルダに格納) を使ってコマンドラインから Visual Studio のビルドを分散実行する方法をみていきます。
Incredibuild Interfaces 拡張パッケージのインターフェースの1つを使用する分散ジョブは、IBConsole.exe コマンドラインインターフェースを使用して実行することができます。レンダリング、シミュレーション、QAテスト、スクリプトなど、カスタムツールを高速化するためのインターフェースです。
BuildConsole.exe の実行
BuildConsole <Target> [Options]
<Target> には、Visual Studio ソリューション (.sln ファイル) またはプロジェクト (.vcproj/.icproj/.vcxproj ファイル) へのパスを指定します。
特定のプロジェクトをビルドするために、必ずしもBuildConsoleコマンドに .sln ファイルをインクルードする必要はありませんが、.sln パラメーターの省略は推奨されていません。プロジェクト ファイルの情報が一部欠けている場合、プロジェクトを正しくコンパイルできないことがあります。BuildConsole コマンドに「/VsVersion」オプションが追加されました。これによりビルドで使用する Visual Studio のバージョンを指定できるようになりました。
コマンドの例:
-
MySln.sln ソリューションの Debug|Win32 のソリューション構成をリビルドする場合:
BuildConsole.exe MySln.sln /rebuild /cfg="Debug|Win32"
-
MySln.sln ソリューションのDebug|Win64 ソリューション構成を再構築するには
BuildConsole.exe MySln.sln /rebuild /cfg="Debug|Win64"
-
MySln.sln ソリューションのProj1プロジェクトのみを Debug|Win32 と Release|Win32 両方のソリューョン構成でビルドするには
BuildConsole.exe MySln.sln /build /prj=Proj1 /cfg="Debug|Win32,Release|Win32"
-
プロジェクトと構成のより複雑な組み合わせをビルドするには、[Batch Buid] ダイアログから「MyPreset」プリセットを使用します。
BuildConsole.exe MySln.sln /build /preset="MyPreset"
このほかに、BuildConsole はプロジェクトをビルドするための「msdev.exe」と「devenv.exe」コマンドラインの構文もサポートしています。「msdev.exe」または「devenv.ex」を起動するバッチ ファイルをすでに使用している場合は、これらのプログラム名を「BuildConsole.exe」に置き換えると、標準の Visual C++ ビルドの代わりに Incredibuild の分散ビルドが実行されます。
1 台の開始マシンで一度に実行できるビルドは 1 つだけです。ほかのビルドが実行中に開始したビルドは一時停止され、現在のビルドが終了するのを待って実行されます。
BuildConsoleは、内部および外部のコマンド、作業可能なプログラムもしくはバッチファイルとして認識されていませんというエラーが表示される場合、 Incredibuild インストールフォルダを手動でシステムパスに追加するか、マシンで Incredibuild セットアップアプリケーションを再実行して、システムパスに Incredibuildフォルダを追加する オプションが選択されているか確認します。
コマンドライン オプション
オプション | 機能 | 備考 |
---|---|---|
@ |
BuildConsole のコマンドラインが含まれる応答ファイルを指定します。 |
BuildConsole を実行するためのコマンドラインが長すぎて、スクリプトで明示的に指定できない場合に使用します。 |
/All |
一部プロジェクトのビルドに失敗しても、ソリューション / ワークスペースのビルドを続行します。 |
デフォルトでは、プロジェクトで出力ファイルのビルドに失敗するとビルドを停止しますが、このオプションを使って残りのビルドを継続することができます。 |
/Attach |
現在または直近のビルドの出力を表示します。 |
ビルド中の場合は、現時点までのビルドの出力を表示し、ビルドが終了するまで表示し続けます。ビルドを実行していない場合は、当該マシンで開始した最後のビルドの出力をすべて表示します。 |
/AvoidLocal=[On/Off] |
エージェント設定のAvoid task execution on local machine when possible オプションを上書きします。 |
値 (ON / OFF) が必須です。 |
/Beep |
ビルドの完了を通知音で知らせます。 |
|
/BrowseInfo=[ON/OFF] |
現在の設定にかかわらず、ブラウザ情報を作成または作成解除します。 |
ブラウズ情報の設定については、Agent Settings を参照してください。 |
/buildcacheremoteserver=[ip address:port] |
エージェント設定で定義したものとは異なるBuild Cache エンドポイントを使用します。また、ポートも指定する必要があります。例:/buildcacheremoteserver=192.5.8.1:50222 |
|
/buildcachelocal=[ON|OFF] |
この イニシエータ でローカル Build Cache が有効かどうかを定義する設定を上書きします。 |
|
/Cfg=<configuration> |
ビルドするソリューション構成を指定します(VC6 ビルドの場合はプロジェクト構成を指定します)。 |
|
/cl_add="<options>" |
cl.exe のすべての呼び出しに、追加のコンパイラーオプションを追加できるようにしました。 |
cl.exe のコマンドラインに表示されるように、1 つまたは複数のコマンドをスペースで区切って入力します。 例:BuildConsole MyProj /cl_add="/O2 /FA" |
/cl_rem="<options>" |
cl.exe のすべての呼び出しから除外するコンパイラ オプションを指定します。 |
cl.exe のコマンドラインに表示されるように、1 つまたは複数のコマンドをスペースで区切って入力します 例: BuildConsole MyProj /cl_rem="/Z7 /Zd /Zi /ZI" |
/Clean |
プロジェクトとすべての依存関係の中間ファイルと出力ファイルを消去します。 |
|
/compile=<source file name> |
指定したファイルのみビルドします。 |
|
/Disable |
Incredibuild Agent を無効にします。 |
|
/DisablePdbForwarding |
このビルドの PDB 転送メカニズムを無効にします。 |
VS 2010 のみが対象です。 |
/DumpSourceFiles=filename |
プロジェクト / ソリューションの全ソース ファイルのパスをファイルに書き込みます。 |
<output filename> は必須です。 |
/Enable |
Incredibuild Agent を有効にします。 |
|
/Help |
使い方のヘルプやバージョン情報を表示します。 |
|
/link_add="<options>" |
link.exe のすべての呼び出しにリンカ オプションを追加します。 |
cl.exe のコマンドラインに表示されるように、1 つまたは複数のコマンドをスペースで区切って入力します。 例: BuildConsole MyProj /link_add="/map:MyProj.map" |
/Log[=filename] |
ビルド出力をファイルに書き込みます。 |
filename を指定しない場合は「IB_<target-name>.log」という名前のファイルがカレント ディレクトリに作成されます。 |
/LogLevel="<Level>" |
このビルドのログレベルを上書きします。 |
<Level> は、以下のいずれかになります。Minimal、Basic、Intermediate、Extended、Detailed. |
/MaxCPUS=<n> |
ビルド設定の最大 CPU / コア数を上書きします。 |
|
/MaxWinVer="<Version>" |
ビルドに参加できるリモート Agent の OS (最新のバージョン) を指定します。 |
これより新しい OS を搭載した Agent はビルドに参加できません。設定可能な値は8.1、10です。 |
/MinWinVer="<Version>" |
ビルドに参加できるリモート Agent の OS (最古のバージョン) を指定します。 |
これより古い OS を搭載した Agent はビルドに参加できません。利用可能な値は8.1、10です。 |
/Mon[=filename] |
ビルド進行 (.ib_mon) ファイルのコピーを指定された場所に書き込みます。 |
|
/msbuildargs="/myarg1 /myarg2" |
BuildConsole /command /usemsbuild スイッチを使用する場合、MSBuild に追加の引数を渡します。 |
コマンドの例: BuildConsole dcom.sln /rebuild /cfg="debug|win32" /msbuildargs="/detailedsummary" /usemsbuild |
/NO_DOTNET_VIRT |
Helper マシン上の .NET 環境の仮想化を無効にします。 |
このオプションを指定すると、Initiator マシンの .NET 環境を Helper マシンに仮想化しません。様々な OS が混在する環境で .NET の互換性がない場合に使用します。 |
/NoLogo |
ビルド出力の「Incredibuild」ヘッダーを非表示にします。 |
|
/NoRecurse |
指定したプロジェクト構成のみビルドしてサブプロジェクトを無視します。 |
|
/NoWait |
この Agent が開始した別のビルドが実行中の場合、BuildConsole は「Another build already running」のメッセージを表示して終了します。 |
|
/OpenMonitor |
プロセスの進行状況を表示するビルドモニター画面を開きます。 |
|
/out=filename |
コマンドラインの全出力をファイルにリダイレクトします。 |
|
/pemode |
Agentの投機的実行 の設定を上書きします。 |
/pemode=0は投機的実行を無効にします。 /pemode=2 は投機的実行を完全に有効にします。 |
/Preset |
Batch Build ダイアログ で事前に保存したプリセットを使用してビルドするプロジェクト/コンフィグを決定します。 |
|
/Prj=<project name> |
ビルドするプロジェクトを決定します。 |
|
/QueryLicense |
有効なライセンス、Allocate Package、メンテナンスの有効期限などの情報を表示します。 |
|
/Rebuild |
プロジェクトをビルドする前にクリーンを行います。 |
複数の変数を設定/上書きしたい場合は /SETENV を複数回使用します。 |
/Reset |
Agent のファイルのキャッシュを消去します。 |
|
/SETENV="<name>=<value>" |
ビルドのコンテキストに合わせて環境変数を設定または上書きします。 |
|
/ShowAgent |
ビルドで使用した Agent を出力ファイルに表示します。 |
|
/ShowCmd |
Incredibuild がビルドで使用したコマンドラインを出力ファイルに表示します。 |
|
/ShowTime |
ビルドの開始時刻と終了時刻を出力ファイルに表示します。 |
|
/Silent |
標準出力に何も書き込みません。 |
デフォルトではビルドモニターの出力ディスプレイの通りにビルド結果を書き込みます。 |
/Stop[=<build-id>] | ローカルマシンで実行中のビルドを停止します。複数のビルドを実行している場合は <build-id> を指定します。 | ビルドが停止すると IBConsole はコード「3」を返します。ビルドが実行されていない場合はコード「2」を返します。 |
/StopOnErrors | 有効にするとエラーが発生した時点でビルドを停止します。 | |
/StopAll |
実行中のビルドをすべて停止します。 |
|
/Title=<build title> |
ビルド出力をテキスト表示する際にテキストの先頭に表示するカスタム ヘッダーを設定します。ここで設定した文字列がビルド履歴とビルドモニターにも表示されます。 |
値を引用符 (”) で囲みます。 |
/UseCloudHelpers |
クラウドHelperが有効な場合、この設定は、現在のビルドにおけるアシストに使用されるかどうかを決定します。デフォルトでは、trueが設定されています。クラウドHelperがビルドを支援しないようにするには、/UseCloudHelpers=falseを設定します。 |
|
/UseEnv |
Visual C++ IDE のパスの代わりに、PATH、INCLUDE、LIBPATH、LIB 環境変数を使用します。 |
|
/UseIDEMonitor |
このオプションを指定して Visual Studio IDE から を BuildConsole を実行すると、IDE のビルドモニターに処理の進行況が表示されます。 |
|
/UseMSBuild |
MSBuild を強制的に使用します。 |
デフォルトでは Devenv でビルドが行われます。このオプションを使うと、MSBuild でビルドが実行され、/msbuildargs を使って特定の MSBuild フラグを追加できるようになります。 これにより、VS 2022以降では64bit MSBuildが、それ以前のバージョンでは32bit MSBuildが自動的に使用されます。 この自動検出を無視し、使用するバージョンを手動で指定するには、=32 または =64 を追加します(例:/usemsbuild=32)。 |
/VsVersion="<Version>" |
指定バージョンの Visual Studio ツールセットを強制的に使用します。 |
<Version>には以下のいずれかを指定します。
|
/wait |
この Agent が開始した別のビルドが実行中の場合、終了を待って新しいビルドを開始します。これはデフォルトの動作です。 |
|
/EnableOlderMSVCSupport=True |
MSVC 2012-2015でBuild Cacheを有効化するには、このフラグを「True」に設定します。 |
このフラグはデフォルトでは「フォールス」です。 |
リターンコード
BuildConsole は次のリターンコードを返します。
-
0 - エラーなしでビルドに成功しました
-
1 - Incredibuild に関係のないエラー(コンパイルエラーなど)のため、ビルドに失敗しました
-
2 -ユーザーからのリクエストでBuildがキャンセルされました
-
3 - IncredibuildのシステムエラーによりBuildが失敗しました