我有一个自定义操作“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,因为我希望安装程序在卸载时删除整个目录。