在卸载WIX中创建的安装程序时未卸下Windows服务
问题描述:
我创建了安装Windows服务的安装程序,但是当我卸载该服务时,服务仍然开始并且未被删除。我已经在Wix中创建了安装msi。在卸载WIX中创建的安装程序时未卸下Windows服务
<DirectoryRef Id="INSTALLDIR">
<Component Id='MyComponent' Guid='CDBA9BC4-F839-4CAB-8AB0-4397EC079541'>
<File Id='LogFWService' Name='LogFWService.exe' Source="$(var.LFShared)\LogFWService.exe" KeyPath="yes" />
<ServiceInstall Id="InstallLFService" Name="LogFWService" DisplayName="OpenFramework Logging Service" Start="auto" ErrorControl="normal" Description="Captures log events and inserts the log messages into database" Type="ownProcess">
<ServiceDependency Id="MSMQ" />
</ServiceInstall>
<ServiceControl Id="sc_InstallLFService" Name="LogFWService" Start="install" Remove="uninstall" Stop="both" Wait="yes"/>
</Component>
</DirectoryRef>
即使我已经使用删除文件属性,但它仍然没有删除卸载时的Windows服务。 请帮助任何人有任何关于卸载Windows服务的知识。
答
我有类似的问题。我不是100%肯定的,但我认为在我更改安装组件的GUID后它消失了。之前的GUID是从另一个项目复制粘贴的,以及用于安装Windows服务的整个安装标记,我忘了用新的GUID替换它。
SC删除“YourServiceNameHere”
答
我曾在开发环境中测试相同的WiX的安装程序的多个版本时出现这种情况:
顺便说一句,您可以使用命令propmt命令SC删除“剩”服务。问题是它不能删除一个实体(组件),因为有一个仍然声明的依赖关系。它通常是由于某些注册表键在以前的尝试中遗留下来的。
搜索以下和删除相应的(不是全部)键
- 的密钥文件中的分量的ID
- 组件
- 目录/文件夹名的GUID(罐包括在\ HKLM \ MS \ WIN \ CURVER \安装\文件夹引用计数)
- 密钥文件(也引用计数,但不是在文件夹键)
某些显示名称搜索的键往往位于最近使用的列表或其他良性地点。使用标准注册表时这可能是一个乏味的过程,所以如果你走这条路线,建议使用更好的工具。
理想情况下,您应该测试可以恢复到以前状态的计算机上的安装程序。
我遇到了同样的问题 有没有人可以帮我解决这个问题? – User