metaetiqueta - wix head tag
Condicional elija entre dos diálogo de salida cuando use la extensión de UI InstallDir de WIX (2)
Me gustaría tener dos diálogos de salida diferentes basados en la versión de la propiedad VersionMsi para utilizar el control de hipervínculo para el cuadro de diálogo de salida. Más información aquí .
Estoy usando una versión personalizada de la extensión InstallDir_UI de WIX para mi proceso de instalación. Como me gustaría optar por el control de hipervínculos, si está disponible, he creado dos cuadros de diálogo diferentes:
<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>
Luego modifiqué las instrucciones de publicación de la interfaz de usuario para admitir esos cuadros de diálogo a algo como esto:
<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>
Al ejecutar esto, obtengo los siguientes errores:
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
Así que he intentado modificar InstallUISequence en su lugar, pero con poca ayuda. Intenté esto:
<InstallUISequence>
...
<Show Dialog="NonHyperlinkExit" Before="HyperlinkExit"><![CDATA[VersionMsi < "5.0"]]></Show>
<Show Dialog="HyperlinkExit" OnExit="success"><![CDATA[VersionMsi >= "5.0"]]></Show>
</InstallUISequence>
Pero esto solo me da el siguiente error:
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.
Cualquier idea sobre cómo crear diálogos de salida condicional sería apreciada.
MSI solo admite un diálogo de salida por estado (por ejemplo, éxito). En su lugar, podría usar una acción personalizada que muestre el cuadro de diálogo apropiado.
También puede usar una acción personalizada para inyectar dinámicamente controles en un diálogo solo cuando es compatible. Ver: