【发布时间】:2012-03-27 16:30:28
【问题描述】:
我有一个简单的 WIX 安装程序,它将安装 Windows 服务。我设置了多个实例,以便服务可以并排运行。
一切看起来都很好,我现在遇到的唯一问题是卸载安装时。它完全删除了实际的 Windows 服务可执行文件,但并没有完全删除注册表项。进入services.msc 我仍然可以看到服务名称。我必须进入注册表并手动删除该条目。
在这里查看我的 VS2010 解决方案:http://andrewherrick.com/spike/multiplewindowsservices.zip
您可以通过安装默认实例轻松重新创建它,然后并排安装实例 01。然后尝试卸载实例 01。您会看到它没有从服务列表中删除。
有什么想法吗?
【问题讨论】:
-
您是否将不同的实例安装到不同的目录?
-
更正使用带有 MSIEXEC 的 INSTALLLOCATION 参数来设置安装目录。存放服务 EXE 的两个单独目录。
-
我知道在执行多个实例时具有非文件键路径的组件存在问题(它们必须具有唯一的 GUID),但我认为这不是文件键路径的问题。是否有可能您的测试机器很脏并且引用计数不正确?尝试使用快照的干净虚拟机。
-
克里斯托弗感谢您的回复。实际上,我可以通过升级到 3.6 并将 MultiInstance 属性设置为 Yes
-
很高兴知道。我知道从 MSI 的角度来看它是如何工作的,以及 InstallShield 是如何做到的。看看这个有趣:blog.deploymentengineering.com/2008/03/…
标签: windows-services installation wix