Service 有没有办法强制释放已删除的服务句柄(Windows 10)?

Service 有没有办法强制释放已删除的服务句柄(Windows 10)?,service,wix,windows-installer,Service,Wix,Windows Installer,我正在尝试使用Windows Installer(MSI/msiexec)升级由非MSI软件包安装的产品 我的MSI正在使用自定义操作DLL执行另一个软件包的卸载程序,然后执行“正常”MSI安装,包括安装和启动服务 非MSI卸载程序卸载服务,但尽管该服务标记为已删除,但其句柄保持打开状态,因此my MSI安装该服务失败。直到msiexec退出,服务句柄才会释放。我曾希望/期望在退出旧软件包的卸载程序时释放服务句柄,或者在从自定义操作DLL返回时释放服务句柄,但在msiexec完成之前,服务仅被标

我正在尝试使用Windows Installer(MSI/msiexec)升级由非MSI软件包安装的产品

我的MSI正在使用自定义操作DLL执行另一个软件包的卸载程序,然后执行“正常”MSI安装,包括安装和启动服务

非MSI卸载程序卸载服务,但尽管该服务标记为已删除,但其句柄保持打开状态,因此my MSI安装该服务失败。直到msiexec退出,服务句柄才会释放。我曾希望/期望在退出旧软件包的卸载程序时释放服务句柄,或者在从自定义操作DLL返回时释放服务句柄,但在msiexec完成之前,服务仅被标记为已删除

我必须使用非MSI软件包的卸载机制,因此无法避免其服务卸载

处理这个问题的最好方法是什么?如果可能的话,我不想强迫用户执行两个单独的过程,例如首先运行非MSI卸载,然后安装MSI。这似乎不再是一种升级


有没有办法强制释放已删除的服务句柄?

您可以在上次卸载后强制重新启动,然后将其设置为在重新启动后重新启动安装。谢谢,Doc,这是一个很好的建议。。最后,编写DLL的人找到了一些解决方法,因此我们避免了重新启动。您可以在上次卸载后强制重新启动,然后将其设置为在重新启动后重新启动安装。谢谢,Doc,这是一个很好的建议。。最后,编写DLL的人找到了一些解决方法,因此我们避免了重新启动