私は2つのカスタムダイアログボックス(必要なものと加えてExitDlg
,FatalErrorDlg
など)を持っています。最初のものはEditコントロールを使用してプロパティを設定し、 Textコントロール。ここでは、意味のあるコードは次のとおりです。WiXのダイアログボックス(InstallUISequence)間にカスタムアクションを挿入
<Dialog Id="DialogA" ...>
<Control Id="ControlEdit" Type="Edit" Property="MY_PROPERTY" .../>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>
した後、第2のダイアログ:
<Dialog Id="DialogB" ...>
<Control Id="ControlText" Type="Text" Text="[MY_PROPERTY]" .../>
<Control Id="ControlBack" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
<Control Id="ControlNext" Type="PushButton" ...>
<Publish Event="EndDialog" Value="Return" /></Control>
</Dialog>
そしてアクションシーケンス:
<InstallUISequence>
<Show Dialog="DialogA" Before="MyCustomAction" />
<Custom Action="MyCustomAction" Before="DialogB" />
<Show Dialog="DialogB" Before="ExecuteAction" />
</InstallUISequence>
カスタムアクションはMY_PROPERTY
の値を変更します。私の問題は、戻るボタンをDialogB
にする方法です。DialogA
に戻ります。 NewDialog
を使用するのは簡単ですが、ダイアログの間で実行するカスタムアクションを取得できませんか?
編集 - 2013年5月2日
@caveman_dickからの回答後、私は彼が言ったように、ほぼDialogA
を変更しようとしましたが、代わりにEndDialog
を使用して、私はAction="NewDialog" Value="DialogB"
に変更しました。しかし、カスタムアクションは呼び出されていません。次のダイアログに行くためにPublishイベントを削除すると、CAが呼び出されます。 @caveman_dickが言ったように私が残すと、私はDialogA
に戻ることができませんDialogB
から。
編集 - 2013年5月2日
のWiX 3.6ブックで検索した後:開発者ガイドWindowsインストーラのXML、私は以下のが見つかりました:「あなたは1パブリッシュ以上のものを持っている場合イベントの場合は、内部テキストとして条件文が必要です。そうでない場合は、すべてのイベントが公開されません。
ので@caveman_dickからの答えはあなたが以下に変更する必要があることを除いて、正しいです:
<Publish ...>1</Publish>
私はあなたのアプローチを試みましたが、そのアクションは呼び出されていません。 'EndDialog'を使う代わりに、私は' NewDialog'を使って戻ることができます。イベント「NewDialog」を削除すると、そのアクションが呼び出されます。 – Marlos
問題の編集では、複数のイベントを有効にするために条件を追加する必要がありますが、その答えは部分的に正しいものであり、問題を解決します。 – Marlos
私はちょうどその答えを編集しようとしていました。私はひどくあなたのコードをコピー貼り付けました。しかし、認識のおかげで! :) –