jon*_*ers 24 installer windows-installer custom-action wix
我们已经得到一个自定义操作,它运行命令行来工作:
<CustomAction Id="OurAction"
FileKey="OurInstalledExe.exe"
ExeCommand="our command line args"
Execute="deferred"
Return="check" />
Run Code Online (Sandbox Code Playgroud)
问题是,用户在命令运行时会看到控制台弹出窗口.
命令行需要UAC提升,但不应要求任何用户交互.我们还使用安装程序安装文件,自定义操作运行After ="InstallFiles".
我们如何阻止用户看到控制台?
请注意,如果确实需要UAC提升,则需要确保它是延迟执行CA. 以下是添加了命令行参数的手册中的示例.
<CustomAction Id="QtExecDeferredExampleWithProperty_Cmd" Property="QtExecDeferredExampleWithProperty"
Value=""[#MyExecutable.exe]" /arguments" Execute="immediate"/>
<CustomAction Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="deferred" Return="check" Impersonate="no"/>
.
.
.
<InstallExecuteSequence>
<Custom Action="QtExecDeferredExampleWithProperty_Cmd" After="CostFinalize"/>
<Custom Action="QtExecDeferredExampleWithProperty" After="TheActionYouWantItAfter"/>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
如果您有 EXE 文件的源代码,则可以执行此操作。将 EXE 项目设为Win32 Application项目,而不是Console Application。
如果您无法修改 EXE 文件的源代码,可以通过以下方式执行此操作: