我有一个可执行文件,需要将预设的参数传递给它,因此需要一个批处理文件(.bat)。一切都运行良好,直到我发现 [WixBundleLastUsedSource] 中使用的文件夹路径可能包含一个空格。
这是EXE文件打包定义:
<ExePackage Id="myexepackage" Compressed="no" Permanent="yes" Cache="no"
After="previousfeature"
SourceFile="$(var.preprocessorvariable)\myexe.bat"
InstallCommand="[WixBundleLastUsedSource]myexe.exe [otherparam]" />
这是我尝试过的一些测试以及它们的日志:
这是工作变化:
应用执行包:myexepackage,操作:安装,路径:C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe.bat,参数:'"C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe.bat" C:\User \Desktop\Install\myexe.exe 其他参数值'
虽然以下两个日志来自失败:
应用执行包:myexepackage,操作:安装,路径:C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe.bat,参数:'"C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe\Users.bat" "C:用户\桌面\安装\myexe.exe"其他参数值'
应用执行包:myexepackage,操作:安装,路径:C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe.bat,参数:'"C:\ProgramData\Package Cache\7AE3BA856B7D415569854BFE32DD3848112B7BFA\myexe\Users.bat" "C: user\Desktop\Install new\myexe.exe" otherparamvalue'
每当我向 EXE 文件包中引入引号"
时%quot;
<ExePackage Id="myexepackage" Compressed="no" Permanent="yes" Cache="no"
After="previousfeature"
SourceFile="$(var.preprocessorvariable)\myexe.bat"
InstallCommand=""[WixBundleLastUsedSource]myexe.exe"[otherparam]" />
它失败了:
e000:错误 0x80070001:进程返回错误:0x1
e000:错误 0x80070001:无法执行 EXE 包。
e000:错误 0x80070001:无法配置每台机器的 EXE 包。
有解决方案或解决方法吗?