3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WiX ToolsetでWelcomeDlgとExitDlgを出さないようにする

Last updated at Posted at 2015-06-26

業務でインストーラーを作っていると、色々な事情で難しい要求が出てきたりする訳ですが、今回の事例もそんな物のひとつでした。
WiX Toolsetでインストーラーを作っていましたが、「最初に"WelcomeDlg"を出さないで"CustomizeDlg"を最初に出す。ExitDlgも出さない。」という仕様で実装することになりました(Dialog SetはWixUI_FeatureTreeの使用が前提です)。
WixUI Dialog Libraryでは、中間のダイアログを省いたり、カスタムなダイアログを挿入したり、といったことはできますが、"WelcomeDlg"を省く、なんてことはできません(誰かやり方知ってたら教えて!)。
そこで、インストーラー作成者のお友達、Orcaの登場です。見るべきところは、ここ。
WiX_dlgTest1.png
InstallUISequenceでActionがxxxDlgとなっているところです。赤線で囲ったところは、最初に表示されるダイアログです。そう、WiX ToolsetのUIの起点はここにあるのです。WelcomeDlgとExit
Dialogダイアログで、あるパブリックプロパティ(ここではSHRINKUI)がセットされていたら、Conditionがfalseになるよう設定を変更します。

Action Condition Sequence
ExitDialog NOT SHRINKUI -1
WelcomeDlg NOT SHRINKUI AND (NOT Installed OR PATCH) 1298

そして、下記のようにインストーラーを実行すると、WelcomeDlgとExitDialogが表示されないことが確認できます。

msiexec SHRINKUI=1 /i dlgTest.msi

ただ、これだとProgressDlgまでの全てのダイアログが表示されません。SHRINKUIがセットされているときは、CustomizeDlg以降を表示させるようにします。
InstallUISequenceに下記の行を追加します。

Action Condition Sequence
CustomizeDlg SHRINKUI 1295

再度、コマンドラインオプションにSHRINKUIプロパティを指定してインストーラーを起動すると、仕様の通りCustomizeDlg以降が表示されるようになります。
ここまでの編集で、InstallUISequenceは下記のようになりました。
WiX_dlgTest2.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?