我正在使用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扩展)。