如果您的文本被截断,您需要更改 UI 的尺寸。
无论您使用什么控件来显示该文本,都会使其宽度变大。
我无法评论始终为英文的“启动应用程序名称”文本,因为没有足够的关于该 UI 控件或其显示的文本的信息。您需要添加一些有关您正在使用的 UI 的更多信息。
这是 wix 的默认对话框的链接
https://github.com/wixtoolset/wix3/tree/develop/src/ext/UIExtension/wixlib
在 browsedlg.wxs 中定义了这个控件。
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.BrowseDlgDescription)" />
不幸的是,丹麦语在这里的描述相当长,因此安装程序会删除文本并使用省略号。
我认为解决此问题的最简单方法是在您的项目中添加一个名为 AppNameBrowseDlg.wxs 的新 wxs 文件,然后从此处 https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/BrowseDlg.wxs 复制整个 xml。您还需要将
要使用这个新对话框,您还需要添加另一个 wxs 文件,您可以将其命名为 AppName_InstallDir.wxs,它将是此 https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/WixUI_InstallDir.wxs 的副本。这里需要将 Id 更改为 AppName_InstallDir
只需将 更改为
您还需要修改这些行
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
引用您的 AppNameBrowseDlg
这基本上复制了您在安装程序中使用的对话框和 UI 定义。在您的产品中,您只需将 UIRef 更改为“AppName_InstallDir”,它将使用您定义的 UI,该 UI 将默认的 browsedlg 替换为可以符合丹麦文本的 UI。我也会考虑在这里提交一个 wix 改进 https://github.com/wixtoolset/issues/issues 要求 WixUI 的 browsedlg 的描述控件更宽。
对于您的启动文本,您遇到了英语问题,因为您使用英语 msi 作为其他语言的基础。此复选框的实现方式意味着您正在硬编码复选框控件的文本值设置为的属性中的英文文本。您本地化 msi 的方式可能是创建多个字符串表并在运行时从适当的表中选择字符串。但是,复选框不会从字符串表中获取其文本值。相反,它来自被设置为“LaunchApp”值的属性值。 (顺便说一句,如果您使用丹麦语版本的 msi 作为基础,则此文本将始终为丹麦语)。
我们可以通过与修改 Wix BrowseDlg 大致相同的方式来解决此问题。在这种情况下,我们希望将 ExitDialog 从这里复制到 AppNameExitDialog.wxs https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib/ExitDialog.wxs
您需要将 Dialog Id 重命名为 AppNameExitDialog 然后我们要查看此控件
<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="[WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT]">
<Condition Action="show">WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT AND NOT Installed</Condition>
</Control>
你想把它改成下面的
<Control Id="OptionalCheckBox" Type="CheckBox" X="135" Y="190" Width="220" Height="40" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="!(loc.LaunchApp)" />
此外,Windows 安装程序无法将复选框的背景自动显示为您在链接的屏幕截图中看到的灰色以外的任何其他颜色。如果你想摆脱文本后面的这种灰色,你实际上可以将复选框控件的宽度和高度修改为大约复选框本身的大小,并将文本设置为“”。然后,您需要向 UI 中添加另一个 Text 控件,该控件位于复选框文本所在的位置。这样,文本后面就不会有任何灰色背景。这样做的缺点是您必须单击实际的复选框来切换它是否被选中,而在您可以单击灰色区域中的任何位置之前。
同样,要正确引用这个新对话框,您需要转到 AppName_InstallDir.wxs 文件并将 ExitDialog 引用更改为 AppNameExitDlg,并更改引用 ExitDialog 的 。
希望这会有所帮助。 git 存储库对于了解 wix 的实际工作原理非常有用。