WiX标准引导程序:安装后启动应用程序

时间:2018-09-15 15:43:37

标签: wix bundle bootstrapper burn wix3

我正在使用WiX标准引导程序创建捆绑安装程序,以便在用户计算机中安装.NET Framework 4.5(如果尚未安装)和我的应用程序。捆绑软件安装程序还允许用户设置应用程序的安装路径,并且仅使用WiX标准引导程序的UI(不会向用户显示其他安装程序的界面)。

现在,我正在努力让用户在安装结束时启动我的应用程序。

最接近的相关答案,我可以找到一个名为 LaunchTarget 的变量,该变量将使WiX标准引导程序在安装结束时显示一个“启动”按钮。

给出解决方案以及为什么我不能使用它们:

  • Answer "A"建议将 LaunchTarget 变量设置为应在其中安装应用程序的“ Program Files”文件夹中的确切文件夹。这对我不起作用,因为我希望允许用户指定目标安装文件夹(可以在“ Program Files”文件夹之外安装应用程序)。

  • Answer "B"建议通过使用 InstallFolder 变量来确定用户配置了标准引导程序的安装位置,从而设置 LaunchTarget 变量。这对于我的情况而言似乎是完美的,但是在将 LaunchTarget 值简单地设置为“ [InstallFolder]” 之后,我验证了在标准引导程序用户界面中按下“启动”按钮实际上是否已打开如我所料,运行安装程序的文件夹,用户选择的文件夹。 (是一个错误吗?)

问题是:考虑到用户可以通过WiX标准引导程序的UI修改安装文件夹,我如何正确地将 LaunchTarget 变量设置为正确的路径?

后面是该代码。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
  <Bundle Name="My Game Trainer" Manufacturer="MY_MANUFACTURER_ID_HERE" UpgradeCode="MY_GUID_HERE" Version="!(bind.packageVersion.TrainerMsiPackage)" DisableModify="yes">
    <Variable Name="LaunchTarget" Value="[InstallFolder]" />

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLargeLicense">
      <bal:WixStandardBootstrapperApplication ShowVersion="yes" LicenseFile="PATH_TO_MY_LICENSE.rtf" />
    </BootstrapperApplicationRef>

    <Chain>
      <PackageGroupRef Id="NetFx45Web"/>
      <MsiPackage Id="TrainerMsiPackage" SourceFile="$(var.SetupMSI.TargetPath)" DisplayInternalUI="no">
        <MsiProperty Name="TRAINER_INSTALL_DIR" Value="[InstallFolder]"/>
      </MsiPackage>
    </Chain>
  </Bundle>
</Wix>

使用 WiX Toolset v3.11.1(+ Visual Studio 2017扩展)

0 个答案:

没有答案