如何在MSI卸载期间删除文件后运行自定义操作?

时间:2009-06-08 14:24:26

标签: visual-studio windows-installer visual-studio-addins

在卸载我正在编写的Visual Studio集成包时,我需要运行“devenv.exe / setup”来更新VS UI并从启动/帮助屏幕中删除包信息。

但是,必须在删除所有加载项和包文件后运行它。我当前的设置(使用在卸载步骤中调用的Installer类自定义操作)导致devenv.exe在实际删除文件之前过早运行。这意味着启动画面信息不会更新。

有什么想法吗?我只需要devenv在安装结束时运行,不知何故 - 我不受自定义操作的束缚。

2 个答案:

答案 0 :(得分:0)

您可以将自定义操作编写为Commit execution。这意味着它只会在成功卸载后运行。将其条件设置为REMOVE="ALL"以确保它仅在卸载时运行。

答案 1 :(得分:0)

事实证明,诀窍是使用MS的新部署工具基础将我的托管函数包装到非托管DLL中,完全避开安装程序类。然后我使用Orca(MSI编辑器)在安装的特定时间添加自定义操作。

Installer类仅支持“延迟”自定义操作,必须在特定时间运行。