やる気駆動型エンジニアの備忘録

WPF(XAML+C#)の話題を中心に.NET/Android/CI やたまに趣味に関するブログです

Jenkinsでインストーラーを作成する方法

Visual Studio 2012以降、昔ながらのインストーラセットアップ プロジェクトが拡張機能で使用することができます。
Visual Studio 2010は、Install Shield一択だったのですがあれは何だったのか…)
できればこのあたりもJenkinsで実行できれば、

ということができます。

まずは下準備としてJenkinsを起動しているPCのVisual Studio拡張機能からインストーラーを追加します。
[ツール] - [拡張機能と更新プログラム]を選択し、オンラインから"install"で検索してインストーラープロジェクトを追加します。
f:id:iyemon018:20170125193456p:plain

次にレジストリエディタを開いて以下の値を追加します。

  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\MSBuild\EnableOutOfProcBuild
  • DWORD:0

f:id:iyemon018:20170125194627p:plain

"12.0_Config"と言うのは"Visual Studio 2013"の構成情報のことです。
2012の場合は、"11.0_Config"、2015の場合は、"14.0_Config"となっています。

ちなみに、これを追加しないとビルドしても以下のようなメッセージが出力されてインストーラーが作成されません。
(これに結構ハマってました…)

ERROR: An error occurred while validating.  HRESULT = '8000000A'

続いてJenkinsの設定です。
ジョブの設定から、"Windowsバッチコマンドの実行"を選択して以下のコマンドを入力します。

:: 開発環境によって実行フォルダを変えてください。
cd C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE
devenv "%WORKSPACE%<ソリューションファイルパス>" /Project "%WORKSPACE%<セットアッププロジェクトパス>" /Build "Release"

上記では"Release"モードでビルドしていますが、ここは必要に応じて変更してください。
なお、"devenv.exe"のコマンドライン引数は以下を参照してください。

Devenv コマンド ライン スイッチ