4

終了ダイアログにハイパーリンクコントロールを利用するために、VersionMsiプロパティのバージョンに基づいて2つの異なる終了ダイアログが必要です。詳細はこちら

インストールプロセスに、カスタマイズされたバージョンのWIXのInstallDir_UI拡張機能を使用しています。可能な場合はハイパーリンクコントロールをオプションでサポートしたいので、2つの異なるダイアログを作成しました。

<Dialog Id="NonHyperlinkExit" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
    <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
    ...
    <Control Id="HowToLink" Type="Text" X="135" Y="175" Width="220" Height="10" Transparent="yes" NoPrefix="yes" Text="!(loc.InfoUrl)" />
    ...
</Dialog>

<Dialog Id="HyperlinkExit" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
    <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
    ...
    <Control Id="HowToHyperLink" Type="Hyperlink" X="135" Y="175" Width="220" Height="10" Text="!(loc.InfoLink)" />
    ...
</Dialog>

次に、これらのダイアログをサポートするようにUI公開ステートメントを次のように変更しました。

<Publish Dialog="NonHyperlinkExit" Control="Finish" Event="EndDialog" Value="Return" Order="998"><![CDATA[VersionMsi < "5.0"]]></Publish>
<Publish Dialog="HyperlinkExit" Control="Finish" Event="EndDialog" Value="Return" Order="999"><![CDATA[VersionMsi >= "5.0"]]></Publish>

これを実行すると、次のエラーが発生します。

error LGHT0204: ICE20: Exit dialog/action not found in 'AdminUISequence' Sequence Table. 
error LGHT0204: ICE82: This action HyperlinkExit has duplicate sequence number -1 in the table InstallUISequence

そこで、代わりにInstallUISequenceを変更しようとしましたが、ほとんど役に立ちませんでした。これを試しました:

<InstallUISequence>
    ...
    <Show Dialog="NonHyperlinkExit" Before="HyperlinkExit"><![CDATA[VersionMsi < "5.0"]]></Show>
    <Show Dialog="HyperlinkExit" OnExit="success"><![CDATA[VersionMsi >= "5.0"]]></Show>
</InstallUISequence>

しかし、これは私に次のエラーを与えるだけです:

error LGHT0177: The InstallUISequence table contains an action 'NonHyperlinkExit' that is scheduled to come before or after action 'HyperlinkExit', 
which is a special action which only occurs when the installer terminates.  
These special actions can be identified by their negative sequence numbers.  
Please schedule the action 'NonHyperlinkExit' to come before or after a different action.

条件付き終了ダイアログを作成する方法についてのアイデアをいただければ幸いです。

4

2 に答える 2

2

カスタム アクションを使用して、サポートされている場合にのみコントロールをダイアログに動的に挿入することもできます。見る:

動的 Windows インストーラー UI

于 2012-10-16T14:21:22.850 に答える
2

MSI は、状態 (成功など) ごとに 1 つの終了ダイアログのみをサポートします。代わりに、適切なダイアログを表示するカスタム アクションを使用できます。

于 2011-06-20T14:26:22.123 に答える