はじめに
JenkinsからMSBuildコマンドを実行して、Visual Studioのソリューションをビルドしてみました。
- Windows Server 2016(1607)
- Visual Studio 2017(15.9)
- Jenkins 2.150.1
- MSBuild 1.2.9
技術評論社
売り上げランキング: 115,241
Jenkins MSBuild Pluginをインストールする
JenkinsでVisual Studioのプロジェクトをビルドするには、はじめにJenkins MSBuild Pluginというプラグインをインストールします。
左のメニューから「Jenkinsの管理」をクリックします。
「プラグインの管理」をクリックします。
「利用可能」タブを選び、フィルタにMSbuildと入力します。検索結果が表示されたら、MSbuildのインストールにチェックを入れ、「再起動せずにインストール」をクリックします。
インストールが成功します。
MSBuildのパスを追加する
続いて、その環境にインストールされているMSbuildのパスをJenkinsに教えます。
Jenkinsの管理から、「Global Tool Configuration」をクリックします。
MSBuildの設定で、MSBuild.exeの場所を指定して、任意の名前をつけます。(この名前が後から出てきます)
ちなみに、VS2017の場合は以下の場所にあります。
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin
JenkinsのジョブからMSBuildを起動する
ジョブの設定画面にて、「ビルド」タブを選び、「MSBuildの実行」を選びます。
続いて、MSBuildバージョン=先ほど指定した任意の名前を選び、MSBuildファイル=ビルドするソリューションファイルを指定します。
上記で設定は完了です。無事ビルドが成功すると以下のようなログになります。
ユーザーアドミンが実行 ビルドします。 ワークスペース: C:\Program Files (x86)\Jenkins\workspace\サンプル1 Path To MSBuild.exe: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe Executing the command cmd.exe /C " chcp 932 & "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe" "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1.sln" " && exit %%ERRORLEVEL%% from C:\Program Files (x86)\Jenkins\workspace\サンプル1 [サンプル1] $ cmd.exe /C " chcp 932 & "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe" "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1.sln" " && exit %%ERRORLEVEL%% 現在のコード ページ: 932 .NET Framework 向け Microsoft (R) Build Engine バージョン 15.9.21+g9802d43bc3 Copyright (C) Microsoft Corporation.All rights reserved. このソリューション内のプロジェクトを 1 度に 1 つずつビルドします。並行ビルドを有効にするには、"/m" スイッチを追加してください。 2019/01/05 21:27:15 にビルドを開始しました。 ノード 1 上のプロジェクト "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1.sln" (既定のターゲット)。 ValidateSolutionConfiguration: ソリューション構成 "Debug|x64" をビルドしています。 プロジェクト "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1.sln" (1) は、ノード 1 上に "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.vcxproj" (2) をビルドしています (既定のターゲット)。 InitializeBuildStatus: "AlwaysCreate" が指定されたため "x64\Debug\ConsoleA.DFC51824.tlog\unsuccessfulbuild" を作成しています。 ClCompile: すべての出力が最新のものです。 すべての出力が最新のものです。 Link: すべての出力が最新のものです。 ConsoleApplication1.vcxproj -> C:\Users\Administrator\source\repos\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe FinalizeBuildStatus: ファイル "x64\Debug\ConsoleA.DFC51824.tlog\unsuccessfulbuild" を削除しています。 "x64\Debug\ConsoleA.DFC51824.tlog\ConsoleApplication1.lastbuildstate" のタッチ タスクを実行しています。 プロジェクト "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.vcxproj" (既定のターゲット) のビルドが完了しました。 プロジェクト "C:\Users\Administrator\source\repos\ConsoleApplication1\ConsoleApplication1.sln" (既定のターゲット) のビルドが完了しました。 ビルドに成功しました。 0 個の警告 0 エラー 経過時間 00:00:02.15 Finished: SUCCESS