卸载服务时,MSI安装程序在卸载期间失败

时间:2011-02-10 20:11:59

标签: windows-services windows-installer

我有一个安装程序,其中包含一些自定义操作&设计师喜欢安装Windows服务。

有时,当我在自定义操作(或MSI配置)中出错时,升级过程可能会失败。解决方案是卸载应用程序并进行全新安装。

但有时我结束的情况是,我无法卸载应用程序,因为服务的“自定义操作”声称该服务未在系统中注册。好吧,也许,没问题。我正在卸载App。问题:我的应用程序没有被卸载。它仍然存在。我必须再次手动将服务添加到注册表并重新启动卸载过程。

问题:我需要配置/开发/编程/等。在服务已被删除时告诉服务(联合国)安装程序在卸载期间不会失败。

BTW:我的自定义操作在卸载过程中 NOTHING 。仅在安装/升级期间,我要求用户进行一些配置并执行一些自定义配置 - 仅与我的应用程序相关。与服务无关。

编辑:忘记提及:VS 2008,默认安装程序项目,没有花哨的东西,目标机器是Windows XP

1 个答案:

答案 0 :(得分:2)

是的,这是我说不使用VDPROJ和InstallUtil自定义操作的众多原因之一。您需要在卸载自定义操作中放置try catch块并处理该场景。

希望您在虚拟机上进行测试并且可以恢复,但是如果这是您的开发箱,请使用Windows SC命令重新创建服务,以便您可以立即使用卸载。

如果你真的想要做到这一点,你想做这样的事情:

Augmenting InstallShield using Windows Installer XML - Windows Services

同样的概念适用于您只需将WiX合并模块添加到VDPROJ安装程序。