はじめに
InstallShieldとは、インストーラを作成するためのアプリケーションです。従来、製品の新規バージョンのリリースに際しては、インストーラ作成の基となる情報が記述されているInstallShieldのプロパティファイルを手動で編集し、ビルド・インストーラ作成を行う必要がありました。この手の編集作業は、修正もれによるインストーラの作成ミスや工数の増加などを引き起こします。このような作業を自動化することによって、作業の戻りを防ぎ、確実な製品リリースを行うことができます。
本稿ではNAntおよび、NAntContribのタスクを利用して、Visual Source Safe(以下、VSS)からのファイル取得、Visual Studio.NET 2003(以下、VS 2003)ソリューションのビルド、InstallShieldプロパティファイルの編集、InstallShieldによるインストーラ作成を自動的に行うサンプルスクリプトを紹介します。
対象読者
Visual Studio.NETの開発者。VSSを利用している方。InstallShieldを利用している方。コンパイル・ビルド作業・インストーラ作成の自動化に興味がある開発者の方。
必要な環境
このサンプルは、NAnt バージョン0.85、NAntContrib バージョン0.85、VSS 2005、.NET Framework 2.0、InstallShield 12 Premiere Edition(日本語版)で動作確認を行っています。
NAntに関する詳細は、別稿『NAntを活用して開発時の作業を自動化する』も併せて参照してください。NAntContribはNAntの拡張版であり、NAnt用のアドオンタスクが含まれています。
InstallShield 12 Premiere Edition(日本語版)は、体験版が用意されています。株式会社ネットワールドのページよりダウンロードできます。ダウンロードしたインストーラ「installshield12japanese.exe」をダブルクリックし、インストールを実行してください。
サンプルファイル(NAntSample_VCSharp3.zip)の使用方法
サンプルファイルには、NAnt本体(バージョン0.85)、NAntContrib本体(バージョン0.85)、VSS DB、NAnt起動用バッチファイル、NAntサンプルスクリプトが含まれています。このサンプルを実行するにはVS、VSS、InstallShieldが必要です。
- ダウンロードファイルをC:\に解凍する(配置先は、C:\NAntSample_VCSharp3)。
- NAntを実行するため、NAntExecute.bat をダブルクリックする(NAntExecute.bat起動時に、NAnt.exeのパスが環境変数に設定されます)。
サンプルスクリプト処理の流れ
サンプルスクリプト処理の流れを下図に示します。
- NAntContribの「vssget」タスクを利用し、VSS DBからVS.NETのソリューションやInstallShieldのプロジェクトファイルを取得します。
- NAntの「solution」タスクを利用しVS.NETのソリューションをビルドして、exeやdllをBuildフォルダに出力します。また、NAntのcopyタスクを利用し、インストーラに含めたいファイルをBuildフォルダにコピーします。
- コマンドライン引数で渡されたリリース名を、NAntのxmlpokeタスクを利用して、InstallShieldのプロジェクトファイル(ISMファイル)に追加します。ISMファイルはxml形式であるため、InstallShield IDEを利用しなくても編集することが可能です。
- InstallShieldコマンドライン版を利用し、インストーラを作成します。
以下にサンプルスクリプトの内容を解説していきます。
サンプルスクリプト ターゲットごとの解説 その1
このスクリプトは、以下の内容で構成されています。
- プロジェクト設定/プロパティ設定
- mainターゲット
- Vssgetターゲット
- buildターゲット
- installerターゲット
それでは、各設定、および、ターゲットについて解説していきます。
プロジェクト設定/プロパティ設定
NAntスクリプト冒頭部分で、スクリプト内で利用する値をプロパティとして設定しておきます。何度も利用する値などを、まとめて設定しておくと便利です。
ここでは、以下のプロパティを設定しています。
プロパティ名 | 説明 |
nant.sample.path | このサンプルのルートパス。 |
vss.path | VSSのコマンドライン版である「ss.exe」のパス。 |
user | VSS DBのログインユーザー名。 |
pass | VSS DBのログインパスワード。 |
ssini.path | VSS DBの設定ファイル(「~.ini」ファイル)のパス。 |
vsswk.path | VSSのローカルワークスペースのパス(ソースの取得先)。 |
release.name | リリース名(コマンドラインから引数で渡す)。ここで指定した値が、インストーラの製品名に追加される。 |
build.path | ビルド出力先のパス。 |
setup.path | インストーラ出力先のパス。 |
iscmd.path | Install Shieldコマンド版である「IsCmdBld.exe」のパス。 |
ism.path | Install Shieldプロジェクトファイル名(パス)。 |
また、今回のサンプルに含まれるVSS DBのディレクトリ構成は下図のようになっています。
VSS DBより、Rootプロジェクト以下を再帰的に取得します。