WiX Burn Bundle Custom UI LaunchApprovedExe

WiX Burn Bundle Custom UI LaunchApprovedExe

我正在使用 WiX 3.10 创建捆绑安装程序 (Burn),我正在使用 WPF 为其编写自定义 UI。我希望安装程序启动其中一个已安装的可执行文件。我一直在尝试使用 LaunchApprovedExe 启动 exe,查看 this 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 是一个安全的位置。我错过了什么?

该注册表项的 Value 包括整个路径的双引号。看来 Burn 引擎不会忽略双引号。如果您删除它们,它应该会起作用。