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

4
在WiX安装程序中,我该如何自定义或覆盖致命错误对话框()?我想显示详细的错误消息,而不是默认的安装失败消息。
选项:
1.是否可以调整WiX中的致命错误对话框大小?
2.如果不行,我该如何在致命错误对话框的位置使用自己的对话框?
1个回答

4
要调整或修改任何现有对话框,实质上需要替换它。幸运的是,您可以从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)" />

1
添加:不要忘记将Custom_FatalError.wxs中“Dialog”元素的“Id”属性更改为“Custom_FatalError”。否则会导致链接器错误。 - Graham Meehan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接