InstallShield2010
業務の都合上InstallShield2010を使う事になり、使い方を調査することになりました。
こいつを使う目的は以下の2点。
1. .NET Framework 3.5SP1をアプリと同時にインストールしたい
2. 旧InstallShield用に開発したシリアル番号認証システムを流用したい
まず1番については特に問題もなく実現できました。
さて、問題が2番目について。今回提供されたシリアル番号認証用のモジュールは、InstallShieldの旧verから使われているInstallScriptという独自言語で書かれた物でした。C言語に似た構文を持つプログラムだったため、最初C用のライブラリかと思って組み込みそうになったのは秘密......。
通常のインストーラの場合、シリアル番号を入力するのはユーザー情報を入力する欄というのが一般的なのですが、今回の場合はInstallScriptでの認証を行わなければならないため、カスタムアクションを使用してシリアル番号認証フォームを出すことになります。(ユーザー情報入力欄からのシリアル番号チェックにはDLLが必要のため)
そう、このカスタムアクションで使用するシリアル番号入力フォームというのがくせものなのです。InstallShieldの定番フォームとはまた違った形のフォームが表示されることになるのでデザインに統一感が無く、さらにフォームを表示するタイミングを細かく指定できないため中途半端なタイミングで出すことになります。もう、はっきり言ってしまえばダサい!
それでも政治的な理由によりこの古くさい認証モジュールを使わなければならないため、無理矢理組み込みました。こんなインストーラ、二度と使いたくないですが。