【发布时间】:2012-03-05 19:06:04
【问题描述】:
我正在用 C# 编写一个小服务,我已经安装并卸载了几次,突然之间它不会再次安装。我尝试卸载它,它说没有要卸载的东西,但是当我再次安装它时,我收到以下消息:
错误 1001:指定的服务已经存在
现在,我尝试了以下解决方案:
关闭服务管理器(因为打开的服务管理器可能持有 处理它)
尝试使用 SC QUERY 找到它,删除是使用 SC DELETE (根据 Service already exists (when it clearly doesn't))
试图在 regedit 中删除它(那里不存在)
我已将项目输出正确添加到自定义操作(安装、 提交、回滚、卸载)
重新启动计算机 (!)
我的想法已经不多了。绝对没有证据表明该服务已安装在我的计算机上,即使成千上万的开发人员似乎都遇到过这个问题(我以前什至自己也遇到过),但我从未听说过没有标准解决方案的情况确实有效。
我可能错过了什么?
编辑
我已经进入 regedit 并再次尝试查找我的服务,但这次我导出了 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 部分并进行了搜索。我可以在以下转储中找到我的服务:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
但后来我在 regedit 视图中转到那里,它不在那里。有什么建议?我是怎么搞砸的:?
重新编辑
忽略编辑,该服务仅在 regedit 中显示,而安装我显示错误消息,但这是更奇怪的事件,该服务已安装,然后中断并回滚...
【问题讨论】:
-
我在 XP 上遇到过几次这种情况,但到目前为止,Win7 解决了这个问题。在这些情况下,它要么是 EventLog-Viewer,要么是服务管理器。并且重新启动总是解决了这个问题。我只能说,使用旧的 .exe 卸载可能很重要,但除了尝试使用 reg-cleaner 工具之外,我不知道任何可能的解决方案。
-
嗯,我使用的是 Vista(自 win95 以来最好的操作系统!),我不知道为什么重启不能解决它,因为它不在注册表中......
-
@CarstenKönig - 我刚刚导出了我的整个注册表并尝试在其中找到“MyService”,但什么也没找到,所以它不在注册表中......
-
可能不是名称,而是其他一些条目(guid,无论如何)-我看到的唯一其他“解决方案”是重新安装 Windows-不要认为这比尝试 regcleaner 更好