WiX v4中ExeCommand日志重定向无效,命令行执行正常
WiX v4自定义操作日志重定向失效的解决办法
问题原因
Windows Installer的ExeCommand不会通过命令行解释器(cmd.exe)执行,因此>这类Shell重定向符号无法被解析,直接写入重定向命令自然不会生成日志文件。
解决方法
直接调用cmd.exe来包裹你的命令,让Shell处理重定向逻辑,修改后的自定义操作代码如下:
<CustomAction Id="RunIt" Directory="INSTALLFOLDER" ExeCommand="cmd /c "[INSTALLFOLDER]MyEXE.exe /silent >C:\output.log"" Execute="deferred" Impersonate="no" Return="asyncWait" />
- 用
cmd /c指定执行完命令后关闭cmd窗口 - 用
"转义引号,确保整个命令被cmd正确识别为单个参数
额外注意事项
由于你的自定义操作是以系统权限运行(Impersonate="no"),C:\根目录可能存在UAC写入限制,建议将日志路径改为有写入权限的目录,比如:
- 临时目录:
[TEMP]output.log - 应用数据目录:
[APPDATA]MyApp\output.log
这样既避免了冗余的.cmd文件,又能正常生成日志。
内容的提问来源于stack exchange,提问作者AdamJ
相关产品推荐
相关产品推荐

