[英]run a custom action before InstallValidate in WIX
我有一個由wix創建的安裝,它安裝了幾個服務。 由於一些無法更改的原因,服務是通過自定義操作而不是WIX安裝的。 除非升級,然后安裝會出現FilesInUse對話框,否則安裝工作正常。 我想通過自定義操作自行處理正在使用的文件。
有什么方法可以在InstallValidate之前運行自定義操作或禁用FilesInUse對話框? 我正在使用通用的WIX UI。
我嘗試將其添加到InstallUIsequence,InstallExecutionSequence(在InstallValidate之前)並禁用重新啟動管理器控件。 什么都沒用..(也許我在其中一個序列中添加了錯誤)
我的自定義操作:
<CustomAction Id="StopServices"
BinaryKey="CustomActionsDLL"
DllEntry="StopServices"
Execute="immediate"
Return="check"/>
有什么建議么?
您需要使用自定義操作而不是內置的WiX / MSI功能來安裝服務並不意味着您無法使用WiX ServiceControl停止服務。 如果Windows Installer看到該服務將被ServiceControl停止,則它將不會在InstallValidate時調用FilesInUse。 如果您的服務在某些方面有所不同,則可能無法正常工作-例如,共享公用Dll的子進程可能會導致FilesInUse對話框。 我假設您已經查看了詳細的日志,並看到了正在使用的進程和文件。
您的自定義操作的問題在於,它是您的代碼,盡管可能很好,但事實並非如此。 另外,即時自定義操作的問題在於它們沒有提升,並且可能無法停止服務,那么您的代碼是否檢查ControlService結果等等?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.