VisualStudioでもmsiインストーラーを作成することは可能ですが、細かいカスタマイズをするのは難しく、かといってInstallSheldを買うとなると結構な値段なので躊躇してしまいます。
そこで、WiXの出番となる訳ですが、WiXで1からインストーラーを作るのは結構だるいです。GUIでのUIの構築はできず、ソースをXMLで記述する必要があり、そこそこ勉強しなければ使えません。
そういう時は、VisualStudioとWiXを組み合わせて使うと便利です。
大体の手順は、
1.大まかなインストーラーをVisualStudioを使って作ります。
2.出来上がったmsiをWiXに付属のdarkというデコンパイラを使ってXMLに変換します。この時、アイコンファイルや各種ファイルも出力させます。
3.デコンパイルしたwxsファイルの必要な部分を書き換えます。
4.candleとlightでコンパイル&リンクします。
5.うまくいけばmsiができるので動作確認します。
以上のような感じですが、細かいやり方は解説サイトも少しはあるのでそっちでみてください。
(日本語でのコンパイルなどちょっとコツがいります)
で、今回のメインは、インストール後にIEを起動させる方法です。
なんかすごく簡単そうですがw
僕はかなりはまりました。
結論から言うと、以下のように記述します。
| <Property Id="BROWSER"> ~~省略~~ <InstallExecuteSequence> <Custom Action='LaunchBrowser' After='InstallFinalize'><![CDATA[NOT Installed]]></Custom> </InstallExecuteSequence> |
ポイントは、DirectorySearchと FileSearchでしょうか。<Property Id="BROWSER">の中にc:\ProgramFIles~とかFIXのパスで書いても動くんですが、ドライブが異なる場合やIEの場所が違う人もいるかもしれません。(まずいないけど)
となると、IEの実行ファイルの場所を探させる必要があるので、このように書きます。Depthは探すディレクトリの深さですが、3もあれば十分でしょう。
あまり広範囲に探させても動かなかったので一応[ProgramFilesFolder]以下で指定しています。
※これを試す前に、レジストリのキーを元に探す方法をためしていたのですが、どうも動作せず、ファイルを探す方法に切り替えました。
実際にブラウザを呼ぶタイミングですが、<InstallExecuteSequence>の中で指定します。
この例では、 After='InstallFinalize' としているのでインストーラーが終了した時点でIEが起動します。
インストール時だけIEが起動してほしいので、NOT Installed という条件をしていしています。
これで動きますが、本当はもっとスマートな方法がありそうです。
(知っていたら教えてください!)
WiXの情報が少ないので今回はこれで妥協します。


ふむぅ。
わたしゃ、インストールシールドしか使ったことねぇ~(;・∀・)
インストーラーは、結構大変だからね~。
苦労はわかります。
インストールシールドいいなー。
零細企業にはつらい値段です。
WiXはMSIをフルコントロールできるのでGUIなんてイラネって人には最高のツールです。多分w
日本語の情報はあまり無いけどね・・・。
ダミーのHTMLでも展開してHTMLを実行でブラウザが立ち上がりそうだけど、
デフォルトのブラウザが立ち上がるのでは駄目なんだね?IEじゃないと。
そうなんだよね。
IEじゃないとだめなんだわ。
何の事かわかると思うけどw
デフォルトブラウザであれば、もう少しスマートに書けるらしい。
DDEのopenコマンドとかかな。