【问题标题】:How to show version number in title of MSI installer in WIX?如何在 WIX 中的 MSI 安装程序的标题中显示版本号?
【发布时间】:2019-05-24 09:45:40
【问题描述】:

我只想在标题中显示版本号,而不是在其他任何地方。甚至在“欢迎使用 XYZ 设置向导”行中也没有。通过更改产品线中的名称<Product Name="$(var.productName) $(var.ProductVersion)"...> 有很多副作用。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: wix windows-installer installation


【解决方案1】:

字符串覆盖:如果你指的是顶部的标题栏(见下面的截图),你可以尝试覆盖字符串 id "WelcomeDlg_Title" (相对于 WelcomeDlgTitle - 是的,它们是不同的,仔细观察) - 为以 _Title 结尾的 all string entries 执行此操作

<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">

  <...>

  <String Id="WelcomeDlg_Title">[ProductName] - [ProductVersion]</String>

  <String Id="SetupTypeDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="WelcomeEulaDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="BrowseDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="CancelDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="CustomizeDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="LicenseAgreementDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="VerifyReadyDlg_Title">[ProductName] - [ProductVersion]</String>
  <String Id="WaitForCostingDlg_Title">[ProductName] - [ProductVersion]</String>

  <...etc...>

</WixLocalization>

总结:您需要做的事情如下:

  • 正常方式建立WiX项目,添加UI支持:WixUIExtension.dll
  • 添加本地化文件(适用于任意数量的语言)
  • 在所有本地化文件中覆盖此字符串 ID 并注入版本 [ProductVersion]

现有答案:不要重复整个过程,请查看此答案:How show version number in title of installation in WIX?

【讨论】:

  • 它只更改了您在屏幕截图中显示的第一个屏幕上的标题。在下一个屏幕中,许可协议再次出现,名称是 productName。我想更改所有屏幕上的标题。
  • 听起来这就是您想要的:“...仅在标题中,而不是在其他任何地方”。无论如何,如果您愿意,我认为您需要使用更复杂的机制来自定义对话框,例如described in my other answer to you。看起来标题可能无法覆盖所有标准对话框。
  • @MehulParmar 用一个小技巧更新了答案,应该可以得到你想要的,但它有点乱,它只适用于标题栏。您必须对所有以_Title 结尾的项目执行此操作。上面的列表不完整。
猜你喜欢
  • 1970-01-01
  • 2022-11-09
  • 2017-01-30
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多