如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?相关的知识,希望对你有一定的参考价值。

我正在使用WIX创建语言包安装程序。除了一件事,我差不多完成了。在安装旧版本的同一安装程序后运行较新版本的安装程序时,“安装”按钮仍显示“安装”,但我希望在较新的安装程序运行时显示“升级”。安装新安装程序后,已安装新版本并删除旧版本。这意味着升级功能方面已经完成。但我希望UI尤其是按钮文本可以相应地更改。

我正在使用bootstrapper项目捆绑从wix安装项目构建的msi语言包文件,并使用链接到UI定义xml文件的标准UI“WixStandardBootstrapperApplication”。我试图在UI定义xml文件中添加一个“升级”页面,它对我不起作用,我不知道如何在bootstrapper项目中检测升级过程。这是我的代码。

<BootstrapperApplicationRef 
 Id="WixStandardBootstrapperApplication.HyperlinkLicense">
  <bal:WixStandardBootstrapperApplication
      LicenseUrl=""
      ThemeFile="HyperlinkTheme.xml"
      LocalizationFile="HyperlinkTheme.wxl"
      LogoFile="Logo128.jpg"
      SuppressOptionsUI="yes" />
</BootstrapperApplicationRef>

<Chain>
  <MsiPackage Id="InstallationMSI"
              SourceFile="......LanguageSetupV3inDebugen-usLanguagePackage.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>

我想知道如何检测bootstrapper项目中的升级过程以及如何根据属性值更改按钮文本。或者我如何找到属性或变量来指示安装和升级过程之间的区别。任何与此相关的链接,教程或建议都将不胜感激。

答案

在WixStdBA中,没有定义单独的升级按钮。唯一的按钮似乎是{WIXSTDBA_CONTROL_INSTALL_BUTTON,L“InstallButton”}来开始安装。在WixStdBA源代码中,我没有找到名为“... UPGRADE ...”的按钮。对于升级捆绑包,新捆绑包需要具有更高版本号,如上所述,捆绑包升级代码需要保持不变。在我看来,可能需要获取WixStdBA源代码并以一种方式修改它,以便检测是否存在具有相同包GUID的任何先前安装,并​​根据安装修改显示不同按钮文本的代码状态。

以上是关于如何在升级过程中运行捆绑包时,如何在WIX(Windows安装程序xml)引导程序项目中将按钮文本更改为“升级”?的主要内容,如果未能解决你的问题,请参考以下文章

如何获得 Wix Burn 捆绑包以阻止升级

如何防止 wix 自定义引导程序卸载 UI 在升级过程中显示

WiX 在安装过程中将 msiexec 安装日志保存为捆绑包的一部分

如何强制卸载损坏的 Wix 捆绑包

如何在 Wix 主要升级期间防止数据库丢失

腾讯win0升级助手捆绑啥插件