Visual Studio で作成したセットアッププロジェクトで CI するためのコマンド
この記事は C# Advent Calendar 2011 21日目として書かれました。
前日は id:ZOETROPE さんで Reactive Extensionsでセンサプログラミング でした。
今年になって C# で真面目にプログラムを書き始めたのですが、C# でも CI したいですよね。
そこで、今まで Ubuntu でだけ使っていた JenkinsベースのCI環境を、Windows 上にも構築しました。
Java なら、最後に war とか jar とかを成果物にすればいいんですが、Windows プログラムならインストーラを作成して配布したい。
と思ってやってみると意外にはまりました。
セットアッププロジェクトを作成
ソリューション右クリックの追加>新規プロジェクトの追加からセットアッププロジェクトを作成します。
セットアッププロジェクトのファイルシステムエディタで
アプリケーションフォルダ>追加>プロジェクト出力
を選択し、Testプロジェクトの成果物をインストーラに含めます。
MSBuild.exe でビルドしてみる
CI したいのでコマンドラインでビルドできなきゃいけません。
通常通りMSBuild でビルドしてみます。*1
$ MSBuild
あらら。ワーニングが表示されました。
TestInstallerプロジェクトの中を見てみるとたしかにインストーラが生成されていません。
どうするか
devenv.com を使用します。
以下のようにコマンドを叩きます。
$ devenv.com Test.sln /project TestInstaller\TestInstaller.vdproj /build Release
今度は成功しました。
あとは、Jenkins のビルドで、上記コマンドが発行されるようにして、生成される成果物を保存対象にすればいつでも最新のインストーラが手に入ります。