SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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プロジェクト以下を再帰的に取得します。

次のページ
サンプルスクリプト ターゲットごとの解説 その2

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
NAntスクリプトによるビルド効率化TIPS連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/909 2007/02/09 00:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング