即使重新启动,即使可执行文件消失,服务仍然存在。我正在使用WIX版本3.0.5419.0
<Component Id="IdiomServer.exe" Guid="7a751e1e-5e9e-41d2-be60-dc905ab1ccad">
<File Id="IdiomServer.exe" Source="$(var.IdiomServer.TargetDir)IdiomServer.exe" KeyPath="yes" />
<ServiceInstall Id="IdiomServer_Service" Name="IdiomServer 4.0" Account="LocalSystem" Description="Idiom Repository Server" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes" />
<ServiceControl Id="IdiomServer_Service" Name="IdiomServer 4.0" Remove="uninstall" Stop="uninstall" Wait="yes" />
</Component>
安装Windows服务正常。卸载它似乎什么都不做。卸载日志文件的部分:
MSI (s) (D8:5C) [09:43:58:033]: Doing action: StopServices
MSI (s) (D8:5C) [09:43:58:033]: Note: 1: 2205 2: 3: ActionText
Action start 9:43:58: StopServices.
Action ended 9:43:58: StopServices. Return value 1.
MSI (s) (D8:5C) [09:43:58:033]: Doing action: DeleteServices
MSI (s) (D8:5C) [09:43:58:033]: Note: 1: 2205 2: 3: ActionText
Action start 9:43:58: DeleteServices.
Action ended 9:43:58: DeleteServices. Return value 1.
非常感谢任何帮助。
答案 0 :(得分:14)
我有一个几乎相同的安装程序,工作正常。唯一的区别是我的ServiceControl元素与ServiceInstall元素具有不同的Id,以及'Start =“install”'属性。
我怀疑你的问题是ServiceControl元素的Id,或者你有一个流浪服务。
尝试以下方法:
答案 1 :(得分:12)
我也有类似的问题。在我的例子中,我只需要确保ServiceInstall和ServiceControl的“Name”属性都相同,问题就消失了。
答案 2 :(得分:3)
我有同样的服务问题没有删除。我从另一个项目中复制了Component,Service Install和ServiceControl元素,而没有更改Guid或ID。使用新的GUID和ID进行更新后,服务现在将删除。
答案 3 :(得分:1)
如果更改组件guid有效,我怀疑该问题可能与注册表中的错误SharedDLL引用计数器有关: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SharedDlls
这些是MSI可以递增(如果要求)的传统样式引用计数器 - 它们将覆盖MSI自己的引用计数。对于某些愚蠢的原因,Installshield会增加所有文件的遗留引用计数(无论它们是否已经版本化),这经常会在开发pc上发生神秘的“卸载时的杂散文件”。如果启用共享dll引用计数,则在Wix中也会出现相同的情况,并且在极少数情况下,重新计数在主要升级期间可能会损坏。
答案 4 :(得分:1)
我遇到了类似鲁珀特所描述的问题。在我的情况下,服务未从服务控制管理器中卸载,并且.exe也被遗忘。经过多次挖掘后,答案非常简单。在包含&lt;组件&gt;中GUID属性设置为“”(即空字符串)。用&lt; Component ... GUID =“56CD2588-B976-4198-B815-FAB7E1E57CD7”替换&gt;解决了问题
答案 5 :(得分:0)
我有类似的问题。即卸载删除的Everyhing但是服务列表中的条目(Win 7 - 本地管理员)。首先我从网络共享安装,这是卸载没有完成的时候。在安装之前将安装程序复制到本地磁盘时,卸载工作非常棒!