2012-05-22 82 views
0

我有一个基于WiX的Windows安装程序,其中安装的一部分是启动服务。这是在Windows 7上运行的,因此使用Windows Installer v5.0。Wix,Windows安装程序重新启动管理器阻止服务卸载?

一切似乎在安装上工作正常 - 所有文件都安装在正确的位置。我已经设置了一些东西,这样我就可以避免打开服务(ServiceControl标签中没有'Start'属性)。但是,当我重新运行msiexec/i并从修改对话框中选择“删除”时,除服务(在服务控制面板中)和服务.exe文件之外,所有内容都将被删除,然后重新启动管理器将尝试重新启动服务!

我已经浏览了最近三天的日志,寻找解决这个问题的原因:为什么服务.exe没有被卸载,以及为什么重启管理器试图重启它,因为它没有明确排除。包含该服务的组件由于某些未知原因未出现在日志中,因此将标记为Null作为要采取的操作,而安装中的每个其他文件都标记为删除。

任何人有任何想法,如果重新启动管理器以某种方式可以干扰在卸载过程中标记为要删除的服务?我假设重新启动管理器正在尝试重新启动服务,因为包含它的组件不会消失,但也希望确认或拒绝该服务。

任何帮助或信息,将不胜感激! Dave

回答

0

您是否指定停止服务并在卸载时删除?这是我如何设置一个服务,需要在停止状态下启动,并在卸载时删除:

<ServiceControl Id="MyService" 
       Name="MyService" 
       Stop="both" 
       Remove="uninstall" /> 
+0

是的,我的看起来非常像你的。奇怪的是,我有两个产品,都使用wix-maven插件构建,并使用非常类似的WiX XML文件。两者都导致服务停止。第一个(已损坏)的服务器将安装该服务,并提供.exe文件。第二个(工作)卸载服务并删除.exe。没有指示服务删除失败的调试信息(在InstallValidate运行时,.exe已被标记为空操作)。当然,没有指示调试信息原因的调试信息。 (我需要一个“跟踪”级别的调试输出!) –

+0

另一个要添加的东西 - 与在Windows 7上无法卸载的相同.msi在XP上完全卸载。我想知道是否涉及重新启动管理器,但如果是这样,为什么一个产品在Windows 7上正确卸载而另一个不正常? –

相关问题