user-interface - 当包在升级过程中运行时,如何在 WIX(windows 安装程序 xml)引导程序项目中将按钮文本更改为“升级”?
问题描述
我正在使用 WIX 创建一个语言包安装程序。除了一件事,我几乎完成了。在安装了同一安装程序的旧版本后运行较新版本的安装程序时,安装按钮仍显示“安装”,但我希望在运行较新的安装程序时它会显示“升级”。安装新安装程序后,新版本已安装,旧版本已删除。这意味着升级功能方面已经完成。但我希望 UI 尤其是按钮文本可以相应更改。
我正在使用引导程序项目来捆绑从 wix 设置项目构建的 msi 语言包文件,并使用链接到 UI 定义 xml 文件的标准 UI“WixStandardBootstrapperApplication”。我试图在 UI 定义 xml 文件中添加一个“升级”页面,它对我不起作用,我不知道如何在引导程序项目中检测升级过程。这是我的代码。
<BootstrapperApplicationRef
Id="WixStandardBootstrapperApplication.HyperlinkLicense">
<bal:WixStandardBootstrapperApplication
LicenseUrl=""
ThemeFile="HyperlinkTheme.xml"
LocalizationFile="HyperlinkTheme.wxl"
LogoFile="Logo128.jpg"
SuppressOptionsUI="yes" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="InstallationMSI"
SourceFile="..\..\..\LanguageSetupV3\bin\Debug\en-us\LanguagePackage.msi"
EnableFeatureSelection="yes"
DisplayInternalUI="no"
Compressed="default"
Description="[UpgradeByUninstallInstall][IsTypicalInstall]"
/>
</Chain>
<Page Name="Install">
<Text X="11" Y="121" Width="-11" Height="51" FontId="3" DisablePrefix="yes">#(loc.InstallMessage)</Text>
<!--<Hypertext Name="EulaHyperlink" X="11" Y="121" Width="-11" Height="51" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallLicenseLinkText)</Hypertext>
<Checkbox Name="EulaAcceptCheckbox" X="-11" Y="-41" Width="260" Height="17" TabStop="yes" FontId="3" HideWhenDisabled="yes">#(loc.InstallAcceptCheckbox)</Checkbox> -->
<Button Name="OptionsButton" X="-171" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.InstallOptionsButton)</Button>
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCancelButton)</Button>
</Page>
我想知道如何检测引导程序项目中的升级过程以及如何根据属性值更改按钮文本。或者我怎样才能找到一个属性或变量来指示安装和升级过程之间的区别。任何与此相关的链接、教程或建议将不胜感激。
解决方案
在 WixStdBA 中没有定义单独的升级按钮。唯一的按钮似乎是 { WIXSTDBA_CONTROL_INSTALL_BUTTON, L"InstallButton" } 开始安装。在 WixStdBA 源代码中,我没有找到名为“...UPGRADE...”的按钮。对于升级包,新包需要具有更高的版本号,如上所述,并且包升级代码需要保持不变。在我看来,可能有必要获取 WixStdBA 源代码并对其进行修改,以检测是否存在具有相同捆绑 GUID 的任何先前安装,并修改代码以根据安装显示不同的按钮文本地位。
推荐阅读
- python - 浏览器搜索与 Bio.entrez 搜索的不同结果
- c# - 如何在不使用参数的情况下在 vb.net 中使 sql 字符串安全
- python - 如何在 pygame 中找到三角形的中点,然后递归地重复执行它以制作谢尔宾斯基三角形?
- jestjs - 笑话:如何从 setupFilesAfterEnv 脚本访问记者实例?
- linux - 我应该在使用 `gpio_to_desc` 返回的 `gpio_desc` 之前使用 `gpio_free` 吗?
- python - 如何使用 Matplotlib 动画预测世界人口增长?
- flutter - 不能改变布尔值
- javascript - 如何使用 D3/Javascript 更改位于同一 Div 中的部分文本的颜色
- java - 在嵌套循环中查找最小和最大数字
- reactjs - 无法在类型“y”上查询字段“x”