次の方法で共有


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.

入力

solution - Project
string. 必須。 既定値: **/*.sln.

複数のプロジェクトをビルドする場合は、検索条件を指定します。 単一フォルダーのワイルドカード (*) と再帰ワイルドカード (**) を使用できます。 たとえば、**.*proj は、すべてのサブディレクトリ内のすべての MSBuild プロジェクト (.*proj) ファイルを検索します。

指定したプロジェクトがこのビルド パイプラインによってダウンロードされていることを確認します。 [リポジトリ] タブで、次の手順を実行します。

  • TFVC を使用する場合は、プロジェクトが [リポジトリ] タブのいずれかのマッピングの子であることを確認します。
  • Git を使用する場合は、プロジェクトまたはプロジェクトがビルドしているブランチの Git リポジトリにあることを確認します。

ヒント

ソリューションをビルドする場合は、MSBuild タスクの代わりに Visual Studio ビルド タスク を使用することをお勧めします。


MSBuildmsbuildLocationMethod -
string. 使用できる値: versionlocation (場所の指定)。 既定値: version.


MSBuild バージョンmsbuildVersion -
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 エージェントでは、バージョンが 15.0より低い場合は、xbuild (Mono) が使用されます。


MSBuild バージョンmsbuildVersion -
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 エージェントでは、バージョンが 15.0より低い場合は、xbuild (Mono) が使用されます。


MSBuild アーキテクチャmsbuildArchitecture -
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)として参照します。 これにより、ビルドをキューに入れ、複数の構成のビルドを有効にするときにプラットフォームを変更できます。


MSBuild 引数msbuildArguments - する
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 エラーが発生したり、断続的または一貫性のないビルド エラーが発生したりする可能性があります。


NuGet パッケージを復元する restoreNugetPackages -
boolean. 既定値: false.

このオプションは非推奨です。 NuGet パッケージを復元するには、ビルドの前に NuGet タスクを追加します。


プロジェクトの詳細を記録する logProjectEvents -
boolean. 既定値: false.

必要に応じて、各プロジェクトのタイムラインの詳細を記録します (Windows のみ)。


ログ ファイルの作成 createLogFile -
boolean. 既定値: false.

必要に応じて、ログ ファイルを作成します (Windows のみ)。


ログ ファイルの詳細なlogFileVerbosity - する
string. 任意 createLogFile = trueするときに使用します。 使用できる値: quietminimalnormaldetaileddiagnostic。 既定値: normal.

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


タスク コントロールのオプション

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

出力変数

なし。

注釈

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

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

  • /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. [ビルド] タブで、この手順を選択し、Platform 引数と Configuration 引数を指定します。 次に例を示します。

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

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

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

トラブルシューティング

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

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

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

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

パイプライン実行のログを取得するには 問題を診断するためのログを取得

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

パイプライン診断ログに加えて、問題のデバッグと解決に役立つ詳細情報を含む他の種類のログも確認できます。

エラーをローカルで再現してみてください

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

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

ヒント

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

Microsoft でホストされるエージェント の詳細について説明します。

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

他に何ができますか?

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

必要条件

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

こちらもご覧ください

  • Visual Studio ビルド タスク