【发布时间】:2015-12-14 22:21:00
【问题描述】:
我有一个自定义操作“xxxx”,它通过命令提示符执行 rmdir 来删除目录。 ExeCommand="[SystemFolder]cmd.exe /C rmdir /Q /S "[DIR]"" and Execute="deferred"
在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,因为我希望安装程序在卸载时删除整个目录。
【问题讨论】:
标签: c++ visual-studio-2012 wix windows-installer uninstallation