Wix安装程序 - 调整致命错误对话框或使用自定义对话框代替致命错误对话框

时间:2016-10-07 05:14:43

标签: wix wix3.5 wix3 wix3.6

在WiX安装程序中 - 如何自定义或覆盖致命错误对话框()?我想显示详细的错误消息,而不是默认设置失败消息。

选项:

  1. 是否可以在WiX中调整致命错误对话框?
  2. 如果没有,我如何使用自己的对话框代替致命的错误对话框?

1 个答案:

答案 0 :(得分:2)

要实质上调整大小或修改任何现有对话框,您需要替换它。幸运的是,您可以从git存储库下载原始资源并根据需要进行修改。

首先,能够修改覆盖默认UI表所需的任何UI元素。让我们为此示例修改 InstallDir UI:

<UIRef Id="WixUI_InstallDir" />       <!-- original -->
<UIRef Id="CustomWixUI_InstallDir" /> <!-- modified -->

现在让我们通过下载源代码并改变我们想要的东西来修改WixUI_InstallDir。我们通过向设置添加新的CustomWixUI_InstallDir.wxs文件来实现。内容可以从WixUI_InstallDir.wxs git。

下载

通过更改新创建的CustomWixUI_InstallDir.wxs文件中元素UI的Id属性,为此UI分配唯一ID:

<UI Id="WixUI_InstallDir">       <!-- original -->
<UI Id="CustomWixUI_InstallDir"> <!-- modified -->

找到引用FatalError对话框的行,并将其替换为您自己的致命错误对话框,如下所示:

<DialogRef Id="FatalError" />        <!-- original -->
<DialogRef Id="Custom_FatalError" /> <!-- modified -->

现在我们需要再次下载FatalError.wxs源代码或从头开始创建它。让我们再次从git下载FatalError.wxs源代码。并将其添加为名为Custom_FatalError.wxs的新设置文件。

在设置过程中出现致命错误后仍然有一个步骤可以显示此对话框:在Custom_FatalError.wxs文件中查找行,按顺序对话并将其替换为您自己的对话框ID,如下所示:

原件:

  <InstallUISequence>
    <Show Dialog="FatalError" OnExit="error" Overridable="yes" />
  </InstallUISequence>

  <AdminUISequence>
    <Show Dialog="FatalError" OnExit="error" Overridable="yes" />
  </AdminUISequence>

修改:

  <InstallUISequence>
    <Show Dialog="Custom_FatalError" OnExit="error" /> <!-- note that Overridable attribute is removed -->
  </InstallUISequence>

  <AdminUISequence>
    <Show Dialog="Custom_FatalError" OnExit="error" />
  </AdminUISequence>

现在您可以通过以下示例自由修改FatalError对话框或任何其他对话框。我个人通过修改描述控件在FatalError对话框中添加了自定义错误消息:

<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="80" Transparent="yes" NoPrefix="yes" Text="!(loc.FatalErrorDescription1) [CUSTOMERRORMESSAGE] !(loc.FatalErrorDescription2)" />