在标准Wix对话框中自定义文本

在标准Wix对话框中自定义文本,wix,wix3,Wix,Wix3,我正在使用Wix标准对话框。如何自定义显示的消息文本 例如,在许可协议页面中,我想将文本“我接受许可协议中的条款”更改为“我承认并接受上述协议的条款” 相关: WiX文档(WiX.chm)中的“高级WiX主题->WiX UI对话框库->自定义内置WixUI对话框集”一章包含有关自定义UI对话框的所有信息,包括文本。在WiX教程中,还有一个关于自定义UI的主题 如果您确实发现需要覆盖更多WiX的默认行为,最好的开始方式是下载源代码(例如从):所有UI对话框都位于src\ext\UIExtensi

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

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


相关:

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

如果您确实发现需要覆盖更多WiX的默认行为,最好的开始方式是下载源代码(例如从):所有UI对话框都位于src\ext\UIExtension\wixlib中,并将让您了解它的工作原理。

我是如何做到的:

  • 将新的本地化文件添加到我的Voctive项目(即我的Visual Studio Wix项目)-右键单击,添加->新建项目…->Wix本地化文件
  • 因为我在自定义英文文本,所以我确保文件中的文化属性为en US
  • 为我想要定制的每个元素添加了字符串元素。例如

    
    我接受上述协议的条款
    

  • 为了确定需要覆盖的字符串的ID,我查看了Wix源代码中的文件。在某些情况下,参考以查找在何处使用了哪些字符串是有帮助的

  • 最后一点要注意的是,当您将本地化文件添加到项目中时,Wix将开始输出本地化文件中以区域性命名的子文件夹中的msi文件。例如,我的被写入\bin\Debug\en我们,而不是\bin\Debug\

  • 您还可以使用Orca来确定字符串的ID。重要提示,如果您遇到许多错误,例如
    本地化变量!(loc.MyVariable)未知。请确保定义了变量。
    当您添加一个带有区域性的
    *.wxl
    文件时,会发生这种情况,该区域性在UIExtension中不存在。例如
    en GB
    。在WiX工具包存储库中,您可以检查现有的
    *.wxl
    文件。()好的步骤和有用的链接。另请参见此WiX教程页面。
    <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>