ビルトイン WixUI Dialog Set のカスタマイズ

ビルトイン WixUI dialog set は、以下の方法でカスタマイズできます:

ライセンス ファイルの指定

WixUIExtension.dll は デフォルトの、使用許諾 プレースホールダーを 含んでいます。 あなたのプロダクトのライセンスを指定するには、あなたのライセンス テキストが入っている RTF ファイルの値を持つ WixUILicenseRtf と名付けられている WiX 変数を指定する事で デフォルトを オーバーライドして下さい。WiX オーサリングで 変数を定義できます:

<WixVariable Id="WixUILicenseRtf" Value="bobpl.rtf" />
あるいはまた、light を実行している時に -d スイッチを使って 変数を定義できます:
light -ext WixUIExtension -cultures:en-us -dWixUILicenseRtf=bobpl.rtf Product.wixobj -out Product.msi
あなたが指定するファイルは、light がファイルを探しているディレクトリーの中に なければなりません。 ディレクトリーを追加するには -b スイッチを使って下さい。

ライセンス ファイルのテキストを表示する為に使われている リッチテキスト コントロールで 既知の問題があり、 コントロールで スクロール ダウンする迄 テキストを空白に見えさせる事があります。これは概して、 (Microsoft Word で RTF ファイルを保存した時に生成される RTF といった) 入り組んだ RTF コンテンツにより 引き起こされます。もし あなたのセットアップ UI で この動作に遭遇したら、多くのケースで 以下の取り組みの1つが それを治します:

デフォルト ビットマップの置換

WixUI ダイアログ ライブラリーは、ようこそと インストール完了 ダイアログのバックグラウンドと その他のダイアログのトップ バナーに関する デフォルト ビットマップを含んでいます。 プロダクトをブランディングする目的の為に それらのビットマップを あなた自身のもので 置き換える事ができます。デフォルト ビットマップを置き換えるには、ちょうど ライセンス テキストを 置き換える時のように、あなたのビットマップ ファイル名で WiX 変数値を指定して下さい。

変数名 説明 寸法
WixUIBannerBmp トップ バナー 493 × 58
WixUIDialogBmp ようこそと インストール完了 ダイアログで使用されている バックグラウンド ビットマップ 493 × 312
WixUIExclamationIco wait-for-costing dialog での エクスクラメーション アイコン 32 × 32
WixUIInfoIco キャンセルと エラー ダイアログでの インフォメーション アイコン 32 × 32
WixUINewIco ディレクトリー参照ダイアログでの ボタン グリフ 16 × 16
WixUIUpIco ディレクトリー参照ダイアログでの ボタン グリフ 16 × 16

ExitDlg のカスタマイズ

ExitDlg は、成功したセットアップの最後で表示される ビルトイン WixUI dialog set 中のダイアログ です。 ExitDlg は、カスタマイズ可能でオプションのテキストと オプションのチェックボックスの両方の 表示をサポートしています。

ExitDlg でどのようにチェックボックスを表示するかの 例に関しては How To: セットアップ後に インストールしたアプリケーションを実行する を見て下さい。

ExitDlg でオプションのテキストを表示するには、WIXUI_EXITDIALOGOPTIONALTEXT プロパティを あなたが表示したい文字列に セットして下さい。例えば:

<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing this product." />

オプションのテキストは 以下の動作を持ちます:

ビルトイン ダイアログ中のテキストのカスタマイズ

ビルトイン WixUI dialog set 中で表示されるすべてのテキストは、もし望むなら カスタム文字列で オーバーライドされ得ます。 そうする為には、あなたのプロダクトの WiX ローカライズ (.wxl) ファイルに、オーバーライドしたい 文字列と同じ Id 値を持つ文字列を 追加しなければなりません。 WiX ソースコードの WixUI_en-us.wxl と名づけられたファイル中を覗く事によって WixUI 文字列 Id 値を 見つける事ができます。

例えば、WelcomeDlg の説明テキストをオーバーライドするには、以下を プロジェクト中の .wxl ファイルに 追加します:

<String Id="WelcomeDlgDescription">This is a custom welcome message. Click Next to continue or Cancel to exit.</String>

ビルトイン dialog set の UI シーケンスの変更

それぞれの WixUI ダイアログ セットには、特定の順番で表示される 予め定義されたダイアログのセットが 入っています。 それぞれのビルトイン WixUI ダイアログ セットに含まれるダイアログについての情報は、 ビルトイン WixUI Dialog Set の使用 中で見つけられるでしょう。

ビルトイン ダイアログ セットのデフォルト シーケンスを変更する事が 可能です。 そうするには、WiX ソースコードからあなたのプロジェクトに カスタマイズしたいダイアログの定義を 含む <Fragment/> の内容をコピーしなければなりません。 そして、インストール エクスペリエンス中に欲しい 正確なダイアログ シーケンスを定義する為に <Publish/> エレメントを変更しなければなりません。

例えば、WixUI_InstallDir ダイアログ セットから LicenseAgreementDlg を削除するには、以下のようにします:

  1. WiX ソースコードの WixUI_InstallDir.wxs 中で定義された <Fragment/> の全部の内容を プロジェクトにコピーする。
  2. LicenseAgreementDlg の為に 戻る と 次へ イベントを追加するのに使われている <Publish/> エレメントを削除する。
  3. LicenseAgreementDlg の代わりに InstallDirDlg に行く為に、WelcomeDlg に 次へ イベントを追加するのに使われている <Publish/> エレメントを変更する。例えば:
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
    
  4. LicenseAgreementDlg の代わりに WelcomeDlg に行く為に、InstallDirDlg に 戻る イベントを追加するのに使われている <Publish/> エレメントを変更する。例えば:
    <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
    

カスタム ダイアログをビルトイン dialog set に挿入

カスタム ダイアログを ビルトイン WixUI ダイアログ セット中の UI シーケンスに 追加できます。 そうするには、新しいダイアログの為に <UI/> エレメントを定義しなければなりません。 その次に、WiX ソースコードからプロジェクトに カスタマイズしたいダイアログ セットの定義を含む <Fragment/> の内容をコピーしなければなりません。 最後に、インストール エクスペリエンス中に欲しい 正確なダイアログ シーケンスを定義する為に <Publish/> エレメントを変更しなければなりません。

例えば、WixUI_InstallDir ダイアログ セット中の WelcomeDlg と LicenseAgreementDlg の間に SpecialDlg と名付けられたダイアログを挿入するには、 以下のようにします:

  1. プロジェクトの <UI/> エレメント中に SpecialDlg の出現を定義する。
  2. WiX ソースコードの WixUI_InstallDir.wxs 中で定義された <Fragment/> の全部の内容を プロジェクトにコピーする。
  3. SpecialDlg の為に 戻る と 次へ イベントを定義する <Publish/> エレメントを追加する。例えば:
    <Publish Dialog="SpecialDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
    <Publish Dialog="SpecialDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
    
  4. LicenseAgreementDlg の代わりに SpecialDlg に行く為に、WelcomeDlg に 次へ イベントを追加するのに使われている <Publish/> エレメントを変更する。例えば:
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SpecialDlg">1</Publish>
    
  5. WelcomeDlg の代わりに SpecialDlg に行く為に、LicenseAgreementDlg に 戻る イベントを追加するのに使われている <Publish/> エレメントを変更する。例えば:
    <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="SpecialDlg">1</Publish>