无法静默执行 WiX 脚本中的命令
Unable to Silent Execute the Command in WiX Script
下面是我的代码,当我尝试安装我的 MSI 时,它会执行所有操作,但下面的行没有执行的迹象。
<Binary Id="unzipExeId" SourceFile="unzip.exe"/>
<Property Id="WixQuietExec64CmdLine" Value="[#$(var.InstallationLocation)\unzip.exe]"/>
<CustomAction Id="unzipAction" BinaryKey="unzipExeId" DllEntry="WixQuietExec64" Execute='deferred' Return ='asyncWait' Impersonate='no'/>
<InstallExecuteSequence>
<Custom Action='unzipAction' Before='InstallFinalize'/>
</InstallExecuteSequence>
我是不是漏了什么。
但是当我尝试这个代码时
<Binary Id="unzipExeId" SourceFile="unzip.exe"/>
<CustomAction Id="unzipAction" BinaryKey="unzipExeId" ExeCommand="START /B unzip.exe" Execute='deferred' Return ='asyncWait' Impersonate='no'/>
<InstallExecuteSequence>
<Custom Action='unzipAction' Before='InstallFinalize'/>
</InstallExecuteSequence>
一切正常,但 unzip.exe 的执行导致机器中出现弹出窗口。 exe 不是静默安装的。但我需要静默执行 EXE。
提前致谢
可能与 DllEntry 有关,而不是使用 "WixQuietExec64" 尝试使用 "CAWixQuietExec64"。
有一个关于此的悬而未决的问题。
http://wixtoolset.org/issues/4802/
这是一个常见的用法:
<CustomAction Id="CA_RunBatchScript"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check" />
下面是我的代码,当我尝试安装我的 MSI 时,它会执行所有操作,但下面的行没有执行的迹象。
<Binary Id="unzipExeId" SourceFile="unzip.exe"/>
<Property Id="WixQuietExec64CmdLine" Value="[#$(var.InstallationLocation)\unzip.exe]"/>
<CustomAction Id="unzipAction" BinaryKey="unzipExeId" DllEntry="WixQuietExec64" Execute='deferred' Return ='asyncWait' Impersonate='no'/>
<InstallExecuteSequence>
<Custom Action='unzipAction' Before='InstallFinalize'/>
</InstallExecuteSequence>
我是不是漏了什么。
但是当我尝试这个代码时
<Binary Id="unzipExeId" SourceFile="unzip.exe"/>
<CustomAction Id="unzipAction" BinaryKey="unzipExeId" ExeCommand="START /B unzip.exe" Execute='deferred' Return ='asyncWait' Impersonate='no'/>
<InstallExecuteSequence>
<Custom Action='unzipAction' Before='InstallFinalize'/>
</InstallExecuteSequence>
一切正常,但 unzip.exe 的执行导致机器中出现弹出窗口。 exe 不是静默安装的。但我需要静默执行 EXE。 提前致谢
可能与 DllEntry 有关,而不是使用 "WixQuietExec64" 尝试使用 "CAWixQuietExec64"。
有一个关于此的悬而未决的问题。 http://wixtoolset.org/issues/4802/
这是一个常见的用法:
<CustomAction Id="CA_RunBatchScript"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check" />