我有一個自定義操作「xxxx」,它通過命令提示符執行rmdir來刪除目錄。 ExeCommand = 「[SystemFolder]的cmd.exe/C命令rmdir/Q/S " [DIR] "」 和執行= 「延期」提示用戶關閉卸載應用程序 - WIX
它在InstallExecuteSequence加入如下
Custom Action="xxxx" After="InstallInitialize"
(NOT UPGRADINGPRODUCTCODE) AND REMOVE
Custom
如果目錄由命令行等其他應用程序打開,則會引發錯誤。
我看過很多類似的問題。但無法弄清楚在
1)提示用戶關閉應用程序 - 我讀添加
UI
DialogRef Id="FilesInUse"
DialogRef Id="MsiRMFilesInUse"
/UI
,並使用自定義操作Before="InstallValidate"
顯示出迅速關閉應用程序。
2)如何在停止服務後運行自定義操作並提示用戶關閉應用程序? 它應該以延遲模式運行。 3)如果我想運行在Execute = deferred
,那麼我不能使用InstallValidate。因此我無法使用FilesInUse。
4)有沒有其他好方法?我不想引用dll,因爲我希望安裝程序在卸載時刪除整個目錄。