Service 使用CAQuietExec的WiX自定义操作失败,命令行错误无效
我有一个需要提升权限的自定义操作。此自定义操作的目的是运行sc.exe并删除Windows附带的服务(w32time)的服务触发器 以下是一些有意义的片段:Service 使用CAQuietExec的WiX自定义操作失败,命令行错误无效,service,wix,custom-action,Service,Wix,Custom Action,我有一个需要提升权限的自定义操作。此自定义操作的目的是运行sc.exe并删除Windows附带的服务(w32time)的服务触发器 以下是一些有意义的片段: <Property Id="removeW32TimeTrigger" Value=""[SystemFolder]sc.exe" triggerinfo w32time delete" /> <CustomAction Id="removeW32Time
<Property
Id="removeW32TimeTrigger"
Value=""[SystemFolder]sc.exe" triggerinfo w32time delete"
/>
<CustomAction
Id="removeW32TimeTrigger"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"
/>
<InstallExecuteSequence>
<Custom Action="removeW32TimeTrigger" After="InstallInitialize" />
</InstallExecuteSequence>
我显然做错了什么事。任何帮助都将不胜感激。由于您正在延迟中运行CA,因此需要使用51型自定义操作发送CustomActionData,而不是使用属性 试试这个,看看它是否有效:
<CustomAction Id='removeW32TimeTrigger_set'
Property='removeW32TimeTrigger'
Value='"[SystemFolder]sc.exe" triggerinfo w32time delete'
Execute='immediate'/>
<CustomAction
Id="removeW32TimeTrigger"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"
/>
<InstallExecuteSequence>
<Custom Action="removeW32TimeTrigger_set" After="CostFinalize" />
<Custom Action="removeW32TimeTrigger" After="InstallInitialize" />
</InstallExecuteSequence>
好的。。。因此,在将此从立即CA移动到延迟CA时,我忘记了[SystemFolder]不会扩展。我还搞砸了,发布了一个过时的错误日志。匹配上述代码段的错误日志失败如下:CAQuietExec:error 0x80070002:Command未能执行由于官方文档似乎不是最新的,我在哪里可以找到有关何时使用的更多信息。
<CustomAction Id='removeW32TimeTrigger_set'
Property='removeW32TimeTrigger'
Value='"[SystemFolder]sc.exe" triggerinfo w32time delete'
Execute='immediate'/>
<CustomAction
Id="removeW32TimeTrigger"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"
/>
<InstallExecuteSequence>
<Custom Action="removeW32TimeTrigger_set" After="CostFinalize" />
<Custom Action="removeW32TimeTrigger" After="InstallInitialize" />
</InstallExecuteSequence>