自定义操作作为FileKey成功,但是从WiXQuietExec失败

问题描述

标签中使用FileKeyExeCommand时,我可以调用一个exe,但是当我使用WixQuietExec64时,它会失败,并出现一个错误,即没有以提升权限调用该exe特权

MSI (s) (DC:34) [14:40:06:767]: Executing op: ActionStart(Name=InstallDebian,)
MSI (s) (DC:34) [14:40:06:830]: Executing op: CustomActionSchedule(Action=InstallDebian,ActionType=3073,Source=BinaryData,Target=WixQuietExec64,CustomActionData="C:\Program Files (x86)\TARFU\debian.exe" install --root)
MSI (s) (DC:78) [14:40:06:830]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIADB5.tmp,Entrypoint: WixQuietExec64
MSI (s) (DC:7C) [14:40:06:845]: Generating random cookie.
MSI (s) (DC:7C) [14:40:06:845]: Created Custom Action Server with PID 9088 (0x2380).
MSI (s) (DC:68) [14:40:06:877]: Running as a service.
MSI (s) (DC:68) [14:40:06:877]: Hello,I'm your 32bit Elevated Non-remapped custom action server.
WixQuietExec64:  Installing,this may take a few minutes...
WixQuietExec64:  
WslRegisterdistribution Failed with error: 0x80070005
WixQuietExec64:  
Error: 0x80070005 Access is denied.
WixQuietExec64:  

WixQuietExec64:  
WixQuietExec64:  Error 0x80070001: Command line returned an error.
WixQuietExec64:  Error 0x80070001: QuietExec64 Failed
WixQuietExec64:  Error 0x80070001: Failed in ExecCommon method
CustomAction InstallDebian returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandBox)
Action ended 14:40:06: InstallFinalize. Return value 3.

我的产品的摘要。wxs

<SetProperty Id="InstallDebian" Value="&quot;[#DebianExe]&quot; install --root"
            Before="InstallDebian" Sequence="execute"/>
<CustomAction Id="InstallDebian" BinaryKey="WixCA" DllEntry="WixQuietExec64"
            Execute="deferred" Return="check" Impersonate="no"/>
InstallDebian之后调用

InstallFiles。我也尝试过WixQuietExecCAQuietExec64CAQuietExec

我如何才能安静地逐步升级该exe文件

解决方法

impersonate="yes"为我修复了它,似乎当用户为SYSTEM时debian.exe无法正确运行