8

我正在使用 Wix 标准对话框。如何自定义显示的消息文本?

例如,在“许可协议”页面中,我想将“我接受许可协议中的条款”文字更改为“我承认并接受上述协议的条款”。


相关:
如何在运行时设置要在 VerifyReadyDlg 中显示的文本?

4

2 回答 2

17

我是这样做的:

  1. 向我的 Votive 项目(即我的 Visual Studio Wix 项目)添加一个新的本地化文件 - 右键单击​​,添加 -> 新项目... -> Wix 本地化文件
  2. 由于我正在自定义英文文本,因此我确保文件中的 Culture 属性为en-US
  3. 为我想要自定义的每个元素添加了字符串元素。例如

    <WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
        <String Id="WelcomeEulaDlgLicenseAcceptedCheckBox">I accept the terms of the above Agreement</String>
    </WixLocalization>

  4. 为了确定我需要覆盖的字符串的 ID,我查看了来自 Wix 源代码的WixUI_en-us.wxl文件。在某些情况下,参考各个对话框的源代码以查找在何处使用了哪些字符串会很有帮助。

  5. 最后要注意的是,当您将本地化文件添加到项目时,Wix 开始在以本地化文件中的文化命名的子文件夹中输出 msi 文件。例如,我的被写入\bin\Debug\en-u s 而不是\bin\Debug \
于 2009-11-12T20:06:43.397 回答
6

WiX 文档 ( wix.chm ) 中的高级 WiX 主题 -> Wix UI 对话框库 -> 自定义内置 WixUI 对话框集一章包含有关自定义 UI 对话框的所有信息,包括文本。在http://www.tramontana.co.hu/wix/的 WiX 教程中还有一个关于自定义 UI 的主题。

如果您确实发现需要覆盖更多 WiX 的默认行为,最好的开始方法是下载源代码(例如来自http://wix.sourceforge.net/releases/3.5.1030.0/wix35-sources.zip):所有的 UI 对话框都在 src\ext\UIExtension\wixlib 中,可以让您深入了解它是如何工作的。

于 2009-11-12T17:40:04.627 回答