2017-09-22 24 views
0

私はWix3.11を使用していて、ExitDialogをカスタマイズしようとしています。次の文を含むダイアログのソースコード(wix3-wix31rtm.zipでExitDialog.wxs)のスケジュールこのダイアログ:だからWix3:無効な属性<Show>の要素は無視されますか?

<Show Dialog="ExitDialog" OnExit="success" Overridable="yes" /> 

、私はMyExitDialog.wxsとしての私のローカルディレクトリにこのファイルをコピーし、ダイアログの名前を変更ExitDialogからMyExitDialogにidとし、このダイアログを予定さ:

<Show Dialog="MyExitDialog" OnExit="success" /> 

しかし、私は光走ったとき、私は次のエラーを得た:

MyExitDialog.wxs(37): error LGHT1050: The AdminUISequence table contains actions 'MyExitDialog' and 'ExitDialog' which both have the same sequence number -1. Please change the sequence number for one of these actions to avoid an ICE warning. 
C:\build\work\eca3d12b\wix3\src\ext\UIExtension\wixlib\ExitDialog.wxs(29): error LGHT1051: The location of the action related to previous warning. 

私はMyExitDialogのショーエルを期待していましたementは元のExitDialogのshow要素をオーバーライドしますが、そのようには機能しません。

Overridable属性の仕組みを誤解していますか?または、私は間違ったExitDialog.wxsファイルを見ていますか?

答えて

1

あなたのインストールで

<UIRef Id="WixUI_Minimal"/> 

のようなものを含めています。関連するUIファイル(here)を見つけて、そのファイルの内容をwixプロジェクトの新しいwxsにコピーする必要があります。この「MyUI」などの名前を付けて、<UI Id="...">タグのIDを「WixUI_Minimal」から別のもの(たとえば)に更新することもできます。作成したばかりの新しいファイルで

<UIRef>があなたの新しいUIを参照するようにすることをお使いの<Product>アップデートで今

<Show Dialog="MyExitDialog" OnExit="success" /> 

に、1つのライン

<Show Dialog="ExitDialog" OnExit="success" Overridable="yes" /> 

を更新します。

WixUIExtensionには、UIとダイアログのすべての定義を含むwixlibが含まれています。あなたはあなたのプロジェクトで新しい終了ダイアログを定義しましたが、古いものはまだ存在し、WixUIExtension dllで定義されています。あなたはまだ古いUIRefを使っていたので、定義されたあなたの1つのダイアログと共にすべてを取り込んでいました。これはシーケンス-1でのアクションの二重定義を引き起こしました。

<Show Dialog="ExitDialog" Sequence="55" Overridable="yes"/> 
(or Before="..." or After="..." or OnExit="...") 

、それがオーバーライドマークされていたので、任意の再定義エラーを取得できません:

オーバーライドタグを使用すると、ダイアログの順序付けを再定義することができることを意味し、このテキスト

If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere.

を持っています。

根本的な問題は、あなたが答えをOnExit="success"

+0

おかげで、両方の2個の<Show>のタグを持つことができないということです。私は 'Overrideable'アトリビュートが他のダイアログがシーケンス-1を 'オーバーライド'できるようにすると考えていました。しかし、実際にはExitDialogを他のシーケンスに再スケジュールすることができます。 –

関連する問題