MSBuild@1 - MSBuild v1 タスク
このタスクは、MSBuild でビルドするために使用します。
構文
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
inputs:
solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
#msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
#msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
#msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
#msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild.
#platform: # string. Platform.
#configuration: # string. Configuration.
#msbuildArguments: # string. MSBuild Arguments.
#clean: false # boolean. Clean. Default: false.
# Advanced
#maximumCpuCount: false # boolean. Build in Parallel. Default: false.
#restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
#logProjectEvents: false # boolean. Record Project Details. Default: false.
#createLogFile: false # boolean. Create Log File. Default: false.
#logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
inputs:
solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
#msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
#msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
#msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
#msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild.
#platform: # string. Platform.
#configuration: # string. Configuration.
#msbuildArguments: # string. MSBuild Arguments.
#clean: false # boolean. Clean. Default: false.
# Advanced
#maximumCpuCount: false # boolean. Build in Parallel. Default: false.
#restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
#logProjectEvents: false # boolean. Record Project Details. Default: false.
#createLogFile: false # boolean. Create Log File. Default: false.
#logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
inputs:
solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
#msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
#msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
#msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
#msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild.
#platform: # string. Platform.
#configuration: # string. Configuration.
#msbuildArguments: # string. MSBuild Arguments.
#clean: false # boolean. Clean. Default: false.
# Advanced
#maximumCpuCount: false # boolean. Build in Parallel. Default: false.
#restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
#logProjectEvents: false # boolean. Record Project Details. Default: false.
#createLogFile: false # boolean. Create Log File. Default: false.
入力
solution
- プロジェクト
string
. 必須です。 既定値: **/*.sln
。
複数のプロジェクトをビルドする場合は、検索条件を指定します。 単一フォルダーのワイルドカード (*) と再帰ワイルドカード (**) を使用できます。 たとえば、 **.*proj
すべてのサブディレクトリ内のすべての MSBuild プロジェクト (.*proj
) ファイルを検索します。
指定のプロジェクトが、このビルド パイプラインでダウンロードされることを確認します。 [リポジトリ] タブで、次のようにします。
- TFVC を使用する場合は、プロジェクトが [リポジトリ] タブでのマッピングのいずれかの子であることを確認します。
- Git を使用する場合は、ビルドしているブランチの Git リポジトリ内にプロジェクトがあることを確認します。
ヒント
ソリューションをビルドする場合は、MSBuild タスクではなく Visual Studio ビルド タスク を使用することをお勧めします。
msbuildLocationMethod
- Msbuild
string
. 使用できる値: version
、 location
(場所の指定)。 既定値: version
。
msbuildVersion
- MSBuild バージョン
string
. 省略可能。 の場合は msbuildLocationMethod = version
を使用します。 使用できる値: latest
、 17.0
(MSBuild 17.0)、 16.0
(MSBuild 16.0) 15.0
、(MSBuild 15.0) 14.0
、(MSBuild 14.0) 12.0
、(MSBuild 12.0) 4.0
、(MSBuild 4.0)。 既定値: latest
。
優先バージョンが見つからない場合は、見つかった最新バージョンが代わりに使用されます。 macOS エージェントでは、 xbuild
バージョンが より 15.0
小さい場合は (Mono) が使用されます。
msbuildVersion
- MSBuild バージョン
string
. 省略可能。 の場合は msbuildLocationMethod = version
を使用します。 使用できる値: latest
、 16.0
(MSBuild 16.0)、 15.0
(MSBuild 15.0) 14.0
、(MSBuild 14.0) 12.0
、(MSBuild 12.0) 4.0
、(MSBuild 4.0)。 既定値: latest
。
優先バージョンが見つからない場合は、見つかった最新バージョンが代わりに使用されます。 macOS エージェントでは、 xbuild
バージョンが より 15.0
小さい場合は (Mono) が使用されます。
msbuildArchitecture
- MSBuild アーキテクチャ
string
. 省略可能。 の場合は msbuildLocationMethod = version
を使用します。 使用できる値: x86
(MSBuild x86)、 x64
(MSBuild x64)。 既定値: x86
。
実行する MSBuild アーキテクチャ (x86、x64) を提供します。
msbuildLocation
- MSBuild へのパス
string
. 省略可能。 の場合は msbuildLocationMethod = location
を使用します。
MSBuild へのパスを指定します。
platform
- プラットフォーム
string
.
ヒント
- ソリューションではなく MSBuild プロジェクト (.*proj) ファイルをターゲットにする場合は、
AnyCPU
(空白なし) を指定します。 - [変数] タブで などの
BuildPlatform
ビルド変数を宣言し ([キュー時] をAllow
選択)、ここで$(BuildPlatform)
として参照します。 これにより、ビルドをキュー登録し、複数の構成のビルドを有効にするときにプラットフォームを変更できます。
configuration
- 構成
string
.
ヒント
[変数] タブで などの BuildConfiguration
ビルド変数を宣言し ([キュー時] を Allow
選択)、ここで $(BuildConfiguration)
として参照します。 これにより、ビルドをキュー登録し、複数の構成のビルドを有効にするときにプラットフォームを変更できます。
msbuildArguments
- MSBuild 引数
string
.
MSBuild (Windows の場合) と xbuild (macOS の場合) に渡される追加の引数を指定します。
clean
- きれい
boolean
. 既定値: false
。
これを増分ビルドにする場合は、 を に False
設定します。 この設定により、特にコードベースが大きい場合、ビルド時間が短縮される可能性があります。 リポジトリも に設定しない限り、このオプションは Clean
実用的な False
効果はありません。
True
コード プロジェクト内のすべてのコードを再構築する場合は、 を に設定します。 これは MSBuild /target:clean
引数と同じです。
詳細については、リポジトリ オプションに関するページを参照してください。
maximumCpuCount
- 並列ビルド
boolean
. 既定値: false
。
MSBuild ターゲット構成が並列ビルドと互換性がある場合は、この入力をチェックして、スイッチを /m
MSBuild に渡すことができます (Windows のみ)。 ターゲット構成が並列ビルドと互換性がない場合、このオプションをオンにすると、ビルドでエラーが発生 file-in-use
したり、断続的または一貫性のないビルド エラーが発生したりする可能性があります。
restoreNugetPackages
- NuGet パッケージを復元する
boolean
. 既定値: false
。
このオプションは非推奨です。 NuGet パッケージを復元するには、ビルドの前に NuGet タスクを追加します。
logProjectEvents
- プロジェクトの詳細を記録する
boolean
. 既定値: false
。
必要に応じて、各プロジェクトのタイムライン詳細を記録します (Windows のみ)。
createLogFile
- ログ ファイルの作成
boolean
. 既定値: false
。
必要に応じて、ログ ファイルを作成します (Windows のみ)。
logFileVerbosity
- ログ ファイルの詳細
string
. 省略可能。 の場合は createLogFile = true
を使用します。 使用できる値: quiet
、、minimal
、normal
、detailed
diagnostic
。 既定値: normal
。
ログ ファイルの詳細度を指定します。
タスク制御オプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
[なし] :
解説
Visual Studio Build タスクまたは MSBuild タスクを使用する必要がありますか?
ソリューションをビルドする場合は、ほとんどの場合、Visual Studio Build タスクを使用する必要があります。 このタスクは自動的に次の操作を行います。
/p:VisualStudioVersion
プロパティを自動的に設定します。 これにより、ビルドが成功する可能性を高める特定のターゲット セットが MSBuild によって強制的に使用されます。- MSBuild バージョン引数を指定します。
場合によっては、タスクの使用が MSBuild
必要になる場合があります。 たとえば、ソリューションとは別にコード プロジェクトをビルドする場合に使用する必要があります。
MSBuild の詳細はどこで確認できますか?
複数のプラットフォームに対して複数の構成を構築するにはどうすればよいですか?
[変数] タブで、構成とプラットフォームに対して変数が定義されていることを確認します。 複数の値を指定するには、コンマで区切ります。 例:
- .NET アプリの場合は、デバッグとリリースの値で を指定
BuildConfiguration
し、任意の CPU 値で を指定BuildPlatform
できます。 - C++ アプリの場合は、デバッグ値とリリース値を指定
BuildConfiguration
し、任意の x86 値と x64 値で を指定BuildPlatform
できます。
- .NET アプリの場合は、デバッグとリリースの値で を指定
[オプション] タブで、 を選択
MultiConfiguration
し、コンマで区切って指定Multipliers
します。 たとえば、BuildConfiguration, BuildPlatform
ジョブ (値の組み合わせごとに 1 つ) を複数のエージェントに並列で配布する場合に選択Parallel
します (使用可能な場合)。[ビルド] タブで、この手順を選択し、 引数と
Configuration
引数をPlatform
指定します。 次に例を示します。- プラットフォーム:
$(BuildPlatform)
- 構成:
$(BuildConfiguration)
- プラットフォーム:
TFSBuild.proj ファイルをビルドできますか?
ファイルをビルド TFSBuild.proj
することはできません。 これらの種類のファイルは、 と TFS 2008
によってTFS 2005
生成されます。 これらのファイルにはタスクが含まれており、ターゲットは XAML ビルドのみを使用してサポートされます。
トラブルシューティング
このセクションでは、タスクの使用時にユーザーが発生する可能性がある一般的な問題に関するトラブルシューティングのヒントを MSBuild
示します。
次のエラーでビルドに失敗しました: MSBuild を実行中に内部エラーが発生しました
考えられる原因
- MSBuild バージョンの変更。
- サード パーティの拡張機能に関する問題。
- ビルド エージェントでアセンブリが見つからない可能性がある新しい Visual Studio の更新。
- 一部の必要な NuGet パッケージを移動または削除した。
トラブルシューティングの提案
診断でパイプライン実行して詳細なログを取得する
問題の診断のために使用できるオプションの 1 つは、生成されたログを調べることです。 パイプラインの実行の概要で該当するタスクとジョブを選択することで、パイプライン ログを表示できます。
パイプライン実行のログを取得するには、問題を診断するためのログの取得を参照してください
また、トラブルシューティングに役立つようにカスタマイズされた詳細ログをセットアップしてダウンロードすることもできます。
パイプライン診断ログに加えて、問題のデバッグと解決に役立つ詳細情報が含まれたその他の種類のログをチェックすることもできます。
- worker 診断ログ
- エージェント診断ログ
- その他のログ (環境および機能)
エラーをローカルに再現してみる
ホステッド ビルド エージェントを使用している場合は、エラーをローカルに再現してみてください。 これは、エラーがビルド エージェントとビルド タスクのどちらによるものかを絞り込むために役立ちます。
同じ MSBuild
引数を使用して、ローカル コンピューターで同じコマンドを実行します。 MSBuild コマンド を参照してください。
ヒント
ローカル コンピューターで問題を再現できる場合は、その次の手順として MSBuild の問題を調査します。
Microsoft ホステッド エージェントの詳細については、こちらを参照してください。
独自のセルフホステッド エージェントをセットアップして、ビルド ジョブを実行するには:
その他にできること
MSBuild エラーの一部は Visual Studio の変更によって発生するため、Visual Studio Developer Community を検索すると、この問題が報告されているかどうかを確認できます。 また、ご質問、ご提案、フィードバックをお待ちしております。
要件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド |
上で実行 | エージェント、DeploymentGroup |
確認要求 | セルフホステッド エージェントには、このタスクを使用するジョブを実行するための次の要求に一致する機能が必要です: msbuild |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | 1.95.0 以上 |
タスクのカテゴリ | Build |