Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

NAnt+InstallShield活用でビルド・インストーラ作成の自動化を行う

NAntスクリプトによるビルド効率化TIPS その3

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/02/09 00:00

InstallShieldのプロパティファイル編集を手動せずに、NAntを利用して自動的に行うことで、ミスをなくし、確実にインストーラを作成することができます。

目次

はじめに

 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用のアドオンタスクが含まれています。

注意
 NAnt バージョン0.85 では、VS 2005(.NET 2.0)で作成されたソリューション/プロジェクトについて、solutionタスクがサポートされていませんので注意してください。

 InstallShield 12 Premiere Edition(日本語版)は、体験版が用意されています。株式会社ネットワールドのページよりダウンロードできます。ダウンロードしたインストーラ「installshield12japanese.exe」をダブルクリックし、インストールを実行してください。

サンプルファイル(NAntSample_VCSharp3.zip)の使用方法

 サンプルファイルには、NAnt本体(バージョン0.85)、NAntContrib本体(バージョン0.85)、VSS DB、NAnt起動用バッチファイル、NAntサンプルスクリプトが含まれています。このサンプルを実行するにはVS、VSS、InstallShieldが必要です。

  1. ダウンロードファイルをC:\に解凍する(配置先は、C:\NAntSample_VCSharp3)。
  2. NAntを実行するため、NAntExecute.bat をダブルクリックする(NAntExecute.bat起動時に、NAnt.exeのパスが環境変数に設定されます)。

サンプルスクリプト処理の流れ

 サンプルスクリプト処理の流れを下図に示します。

サンプルスクリプト 処理の流れ
サンプルスクリプト 処理の流れ
  1. NAntContribの「vssget」タスクを利用し、VSS DBからVS.NETのソリューションやInstallShieldのプロジェクトファイルを取得します。
  2. NAntの「solution」タスクを利用しVS.NETのソリューションをビルドして、exeやdllをBuildフォルダに出力します。また、NAntのcopyタスクを利用し、インストーラに含めたいファイルをBuildフォルダにコピーします。
  3. コマンドライン引数で渡されたリリース名を、NAntのxmlpokeタスクを利用して、InstallShieldのプロジェクトファイル(ISMファイル)に追加します。ISMファイルはxml形式であるため、InstallShield IDEを利用しなくても編集することが可能です。
  4. InstallShieldコマンドライン版を利用し、インストーラを作成します。

 以下にサンプルスクリプトの内容を解説していきます。

サンプルスクリプト ターゲットごとの解説 その1

 このスクリプトは、以下の内容で構成されています。

  • プロジェクト設定/プロパティ設定
  • mainターゲット
  • Vssgetターゲット
  • buildターゲット
  • installerターゲット

 それでは、各設定、および、ターゲットについて解説していきます。

プロジェクト設定/プロパティ設定

 NAntスクリプト冒頭部分で、スクリプト内で利用する値をプロパティとして設定しておきます。何度も利用する値などを、まとめて設定しておくと便利です。

 ここでは、以下のプロパティを設定しています。

プロパティ一覧
プロパティ名説明
nant.sample.pathこのサンプルのルートパス。
vss.pathVSSのコマンドライン版である「ss.exe」のパス。
userVSS DBのログインユーザー名。
passVSS DBのログインパスワード。
ssini.pathVSS DBの設定ファイル(「~.ini」ファイル)のパス。
vsswk.pathVSSのローカルワークスペースのパス(ソースの取得先)。
release.nameリリース名(コマンドラインから引数で渡す)。ここで指定した値が、インストーラの製品名に追加される。
build.pathビルド出力先のパス。
setup.pathインストーラ出力先のパス。
iscmd.pathInstall Shieldコマンド版である「IsCmdBld.exe」のパス。
ism.pathInstall Shieldプロジェクトファイル名(パス)。

 また、今回のサンプルに含まれるVSS DBのディレクトリ構成は下図のようになっています。

VSS DBのディレクトリ構成
VSS DBのディレクトリ構成

 VSS DBより、Rootプロジェクト以下を再帰的に取得します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 齋藤 利佳(サイトウ リカ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:NAntスクリプトによるビルド効率化TIPS
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5