[英]How to execute the custom action in silent mode in wix?
我正在嘗試在wix中卸載安裝程序時執行自定義操作。它工作正常,但在自定義操作時顯示了cmd提示的初始屏幕。最近我嘗試使用CAQuietExec,但無法uininstall安裝程序並給出錯誤。 (CAQuietExec:錯誤0x80070057:無法獲取命令行數據)。
我正在使用的命令是:
<Fragment>
<Property Id="ModifyOutlookRegInitSign_14" Value=""[SystemFolder]reg.exe" ADD "HKCU\SOFTWARE\Microsoft\Office\14.0\Outlook\Security" /v InitSign /t REG_DWORD /d 0 /f"/>
<CustomAction Id="ModifyOutlookRegInitSign_14" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="deferred" Return="check" />
<InstallExecuteSequence>
<Custom Action="ModifyOutlookRegInitSign_14" Before="InstallFinalize"></Custom>
</InstallExecuteSequence>
</Fragment>
如果是立即自定義操作,則包含命令行作為值的屬性名稱必須具有Id="QtExecCmdLine"
。 有關其他類型的自定義操作,請閱讀“ 安靜執行自定義操作” 。
在我看來,您正在嘗試在卸載過程中更新HKCU。 這可能是因為Windows Installer本身不支持此功能。
但是,您提出的解決方案缺少多種方式。 主要是它不支持回滾,也不支持清理其他用戶配置文件。
此注冊表項是否必須在HKCU中實施? 可以在HKLM中實施嗎?
我創建了一個自定義操作來像這樣靜默地殺死一個進程:
<!-- WixQuietExecCmdLine specify the cmd to be executed -->
<Property Id="WixQuietExecCmdLine" Value='"[WindowsFolder]System32\TaskKill.exe" /F /T /IM MyApp.exe'/>
<!-- From WiX v3.10, use WixQuietExec -->
<CustomAction Id="MyAppTaskKill" BinaryKey="WixCA" DllEntry="WixQuietExec" Execute="immediate" Return="ignore"/>
<!-- trigger the custom action -->
<InstallExecuteSequence>
<Custom Action='MyAppTaskKill' Before='InstallValidate'></Custom>
</InstallExecuteSequence>
您可以在此處獲得有關可能的配置組合的更多信息: http : //wixtoolset.org/documentation/manual/v3/customactions/qtexec.html
將您的自定義操作包裝在ID為WixQuietExecCmd的Property周圍。
<Property Id="WixQuietExecCmdLine" Value="command line to run"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.