Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Service 使用CAQuietExec的WiX自定义操作失败,命令行错误无效_Service_Wix_Custom Action - Fatal编程技术网

Service 使用CAQuietExec的WiX自定义操作失败,命令行错误无效

Service 使用CAQuietExec的WiX自定义操作失败,命令行错误无效,service,wix,custom-action,Service,Wix,Custom Action,我有一个需要提升权限的自定义操作。此自定义操作的目的是运行sc.exe并删除Windows附带的服务(w32time)的服务触发器 以下是一些有意义的片段: <Property Id="removeW32TimeTrigger" Value="&quot;[SystemFolder]sc.exe&quot; triggerinfo w32time delete" /> <CustomAction Id="removeW32Time

我有一个需要提升权限的自定义操作。此自定义操作的目的是运行sc.exe并删除Windows附带的服务(w32time)的服务触发器

以下是一些有意义的片段:

<Property
     Id="removeW32TimeTrigger"
     Value="&quot;[SystemFolder]sc.exe&quot; 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>