Стандартный загрузчик WiX: запуск приложения после установки - PullRequest
0 голосов
/ 15 сентября 2018

Я создаю установщик Bundle, используя стандартный загрузчик WiX для установки .NET Framework 4.5 (если еще не установлен) и моего приложения на компьютер пользователя. Установщик пакета также позволяет пользователю установить путь установки для приложения и использует только пользовательский интерфейс стандартного загрузчика WiX (интерфейсы других установщиков не отображаются для пользователя).

Сейчас я пытаюсь разрешить пользователю запускать мое приложение в конце установки.

Ближайшие связанные с этим ответы, которые я мог найти, используют переменную с именем LaunchTarget , которая заставляет стандартный загрузчик WiX отображать кнопку «Запуск» в конце установки.

Ниже приведены решения и причины, по которым я не смог их использовать:

  • Ответ «A» предлагает установить переменную LaunchTarget в точную папку внутри папки «Program Files», в которую должно быть установлено приложение. Это не работает для меня, потому что я хочу позволить пользователю указать целевую папку установки (приложение может быть установлено вне папки «Program Files»).

  • Ответ «B» предлагает установить переменную LaunchTarget с помощью переменной InstallFolder , чтобы определить, где пользователь настроил стандартный загрузчик для установки Программное обеспечение для. Это казалось идеальным для моего случая, но после установки значения LaunchTarget просто на "[InstallFolder]" я убедился, что нажатие кнопки «Запуск» в пользовательском интерфейсе стандартного загрузчика фактически открывает папку где работает установщик, а , а не папка, в которую пользователь решил установить программное обеспечение, как я и ожидал. (это ошибка?)

Вопрос: как правильно установить переменную LaunchTarget на правильный путь, учитывая, что пользователь может изменить папку установки через пользовательский интерфейс стандартного загрузчика WiX?

Далее следует код для Бунда.

<?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) .

...