Visual Studio Installerは、Windows Installerの機能を限定し、お手軽で簡単にしたものと言えます。やや残念なのが「標準インストールUIのカスタマイズが出来ない」という点。まぁ、この辺は使ってみて判断してくださいまし。
まずは使ってみる
VisualStudio.NET2003で「セットアッププロジェクト」を作成するとインストーラが作成できます。
VisualStudioは持って無いけど、各単体ビルドツールのライセンスをお持ちの方はMicrosoftのサイトからDownloadし、ツールに組み込めます。
カスタム処理の追加
- 対象となるプロジェクトでインストーラクラスを新規追加します。
- インストーラクラスの各イベント(BeforeInstall, AfterInstall, BeforeRollback, AfterRollback, Comitting, Comitted, BeforeUninstall, AfterUninstall)にイベントハンドラを追加して、処理を記述します。
- もしくは、インストーラクラスの各メソッド(Install, Rollback, Commit, Uninstall)をoverrideして、処理を記述します。
セットアップパラメータの取得
インストーラクラスのContextプロパティ(InstallContext)のParameters(StringDictionary)から取得できる情報は、デフォルトでは以下だけです。
key | value例 |
---|
assemblypath | c:\program files\jomora\testclasslib\testclasslib.dll |
logfile | |
installtype | notransaction |
action | install |
- セットアップ中のユーザ選択項目をインストーラクラスで取得したいときには、一旦CustomActionDataプロパティにインストールパラメータを渡します(下図参照)
- 二重引用符を付けないと、半角空白や2byte文字でエラーになります。
- "[TARGETDIR]" だとNGで、"[TARGETDIR]data"だとOKなのはどうしてでしょうね?(^^;;
- すると、インストーラクラスのContextプロパティのParametersから取得することができます。
key | value例 |
---|
args | C:\Program Files\Jomora\TestClassLib\data |
- 例えば、カスタム動作の「インストール」で設定したパラメータは、Installメソッド内だけでなく、BeforeInstall, AfterInstallのイベントハンドラでも取得可能です。
ショートカットの修正
Visual Studio Installerでショートカットを作成した場合、「リンク先」が正しく設定されていないので、ショートカットからの引数付き起動ができないです。以下のURLでその修正法を説明されてますね。
Windows Installer で通常形式のショートカットを作成する方法