2009-06-08 60 views
0

在我正在编写的Visual Studio集成包的卸载过程中,我需要运行“devenv.exe/setup”来更新VS UI并从splash/help屏幕中删除包信息。如何在MSI卸载过程中删除AFTER文件后执行自定义操作?

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

任何想法?我只需要devenv在安装结束时运行,不知何故 - 我不想绑定到自定义操作。

回答

0

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

安装程序类仅支持“延迟”自定义操作,它必须在特定时间运行。

0

您可以将您的自定义操作编写为提交执行。这意味着它只能在卸载成功后运行。将其作为REMOVE="ALL"来确保它只能在卸载时运行。

+0

这似乎不起作用。我在Commit(安装)期间已经使用我的Installer类,并且它在回滚时运行,它在文件被删除之前运行。 – muusbolla 2009-06-09 15:09:20

+0

你是什么意思“回滚”?只有在安装过程中出现错误时才会回滚,MSI必须撤消对系统所做的所有更改。这与卸载不一样 - 你是在谈论回滚还是卸载? – 2009-06-09 16:55:36

相关问题