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 引擎不会忽略双引号。如果您删除它们,它应该会起作用。
我正在使用 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 引擎不会忽略双引号。如果您删除它们,它应该会起作用。