如何解决有没有办法强制释放已删除的服务句柄Windows 10?
我正在尝试使用Windows Installer(MSI / msiexec)升级由非MSI软件包安装的产品。
我的MSI使用自定义操作DLL执行另一个软件包的卸载程序,然后执行“常规” msi安装,包括安装和启动服务。
非MSI卸载程序会卸载服务,但是尽管该服务被标记为已删除,但其句柄保持打开状态,因此我的MSI安装该服务失败。直到msiexec退出,服务句柄才会释放。我曾经希望/期望在从旧程序包的卸载程序退出时释放服务句柄,或者在我自定义操作DLL返回时失败,但是在msiexec完成之前,该服务只是标记为已删除。
我必须使用非MSI软件包的卸载机制,因此无法避免其服务卸载。
解决此问题的最佳方法是什么?如果可能的话,我不想强迫用户执行两个单独的过程,例如首先运行非MSI卸载,然后第二次安装MSI。那似乎不再是升级。
有没有办法强制释放已删除的服务句柄?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。