在WiX安装程序中 - 如何自定义或覆盖致命错误对话框()?我想显示详细的错误消息,而不是默认设置失败消息。
选项:
答案 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)" />