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. 使用できる値: versionlocation (場所の指定)。 既定値: version


msbuildVersion - MSBuild バージョン
string. 省略可能。 の場合は msbuildLocationMethod = versionを使用します。 使用できる値: latest17.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を使用します。 使用できる値: latest16.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、、minimalnormaldetaileddiagnostic。 既定値: normal

ログ ファイルの詳細度を指定します。


タスク制御オプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

Visual Studio Build タスクまたは MSBuild タスクを使用する必要がありますか?

ソリューションをビルドする場合は、ほとんどの場合、Visual Studio Build タスクを使用する必要があります。 このタスクは自動的に次の操作を行います。

  • /p:VisualStudioVersion プロパティを自動的に設定します。 これにより、ビルドが成功する可能性を高める特定のターゲット セットが MSBuild によって強制的に使用されます。
  • MSBuild バージョン引数を指定します。

場合によっては、タスクの使用が MSBuild 必要になる場合があります。 たとえば、ソリューションとは別にコード プロジェクトをビルドする場合に使用する必要があります。

MSBuild の詳細はどこで確認できますか?

MSBuild リファレンス

MSBuild コマンド ライン リファレンス

複数のプラットフォームに対して複数の構成を構築するにはどうすればよいですか?

  1. [変数] タブで、構成とプラットフォームに対して変数が定義されていることを確認します。 複数の値を指定するには、コンマで区切ります。 例:

    • .NET アプリの場合は、デバッグとリリースの値で を指定 BuildConfiguration し、任意の CPU 値で を指定 BuildPlatform できます。
    • C++ アプリの場合は、デバッグ値とリリース値を指定 BuildConfiguration し、任意の x86 値と x64 値で を指定 BuildPlatform できます。
  2. [オプション] タブで、 を選択 MultiConfiguration し、コンマで区切って指定 Multipliersします。 たとえば、 BuildConfiguration, BuildPlatform ジョブ (値の組み合わせごとに 1 つ) を複数のエージェントに並列で配布する場合に選択 Parallel します (使用可能な場合)。

  3. [ビルド] タブで、この手順を選択し、 引数と Configuration 引数をPlatform指定します。 次に例を示します。

    • プラットフォーム: $(BuildPlatform)
    • 構成: $(BuildConfiguration)

TFSBuild.proj ファイルをビルドできますか?

ファイルをビルド TFSBuild.proj することはできません。 これらの種類のファイルは、 と TFS 2008によってTFS 2005生成されます。 これらのファイルにはタスクが含まれており、ターゲットは XAML ビルドのみを使用してサポートされます。

トラブルシューティング

このセクションでは、タスクの使用時にユーザーが発生する可能性がある一般的な問題に関するトラブルシューティングのヒントを MSBuild 示します。

次のエラーでビルドに失敗しました: MSBuild を実行中に内部エラーが発生しました

考えられる原因
  • MSBuild バージョンの変更。
  • サード パーティの拡張機能に関する問題。
  • ビルド エージェントでアセンブリが見つからない可能性がある新しい Visual Studio の更新。
  • 一部の必要な NuGet パッケージを移動または削除した。
トラブルシューティングの提案
診断でパイプライン実行して詳細なログを取得する

問題の診断のために使用できるオプションの 1 つは、生成されたログを調べることです。 パイプラインの実行の概要で該当するタスクとジョブを選択することで、パイプライン ログを表示できます。

パイプライン実行のログを取得するには、問題を診断するためのログの取得を参照してください

また、トラブルシューティングに役立つようにカスタマイズされた詳細ログをセットアップしてダウンロードすることもできます。

パイプライン診断ログに加えて、問題のデバッグと解決に役立つ詳細情報が含まれたその他の種類のログをチェックすることもできます。

エラーをローカルに再現してみる

ホステッド ビルド エージェントを使用している場合は、エラーをローカルに再現してみてください。 これは、エラーがビルド エージェントとビルド タスクのどちらによるものかを絞り込むために役立ちます。

同じ MSBuild 引数を使用して、ローカル コンピューターで同じコマンドを実行します。 MSBuild コマンド を参照してください。

ヒント

ローカル コンピューターで問題を再現できる場合は、その次の手順として MSBuild の問題を調査します。

Microsoft ホステッド エージェントの詳細については、こちらを参照してください。

独自のセルフホステッド エージェントをセットアップして、ビルド ジョブを実行するには:

その他にできること

MSBuild エラーの一部は Visual Studio の変更によって発生するため、Visual Studio Developer Community を検索すると、この問題が報告されているかどうかを確認できます。 また、ご質問、ご提案、フィードバックをお待ちしております。

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド
上で実行 エージェント、DeploymentGroup
確認要求 セルフホステッド エージェントには、このタスクを使用するジョブを実行するための次の要求に一致する機能が必要です: msbuild
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 1.95.0 以上
タスクのカテゴリ Build

こちらもご覧ください