Пользовательский интерфейс WiX Burn Bundle LaunchApprovedExe

Я использую WiX 3.10 для создания установщика пакета (Burn), я пишу для него собственный пользовательский интерфейс с помощью WPF. Я хотел бы, чтобы установщик запускал один из установленных исполняемых файлов. Я пытался запустить исполняемый файл с помощью LaunchApprovedExe, посмотрев на этот WIP:

BootstrapperApplication.Engine.LaunchApprovedExe(hwnd, "CFDExeInst", "", 2000);

Это находит соответствующую запись в реестре, используя запись bundle.wxs:

<ApprovedExeForElevation Id="CFDExeInst" Key="SOFTWARE\CFD\CFDInst" Value="Loc" Win64="yes" />

И запись в MSI:

<RegistryValue Id="RV_CFLINST_LOC" Root="HKLM" Action="write"
               Key="SOFTWARE\CFD\CFDInst"
               Name="Loc"
               Value='"[INSTALLFOLDER]cfd.exe"'
               Type="expandable" />

Однако я получаю сообщение об ошибке в файле журнала:

[0EEC:0BD4][]i600: LaunchApprovedExe begin, id: CFDExeInst
[0D54:0B84][]i601: Searching registry for approved exe path, key: SOFTWARE\CFD\CFDInst, value: 'Loc', win64: yes
[0D54:0B84][]i000: The executable path is not in a secure location: "C:\Program Files\CFD PAE\cfd.exe"
[0EEC:0BD4][]i699: LaunchApprovedExe complete, result: 0x80070005, processId: 0

WIP говорит, что Program Files — это безопасное место. Что мне не хватает?


person Paul    schedule 27.04.2017    source источник


Ответы (1)


Value этого раздела реестра включает двойные кавычки по всему пути. Похоже, что движок Burn не игнорирует двойные кавычки. Это должно работать, если вы удалите их.

person Sean Hall    schedule 28.04.2017