gpt4 book ai didi

windows-installer - 在执行卸载之前停止 Windows 服务

转载 作者:行者123 更新时间:2023-12-04 12:48:09 25 4
gpt4 key购买 nike

我有一个安装程序,它安装了几个组件,包括 Windows 服务,安装后它将启动使用 CustomAction 安装到系统上的服务。

卸载应用程序时出现问题,安装程序要求在继续之前关闭应用程序。

Error Dialog

我创建了一个将停止服务的自定义操作,并使用卸载操作对其进行了安排。

但是直到我在手动停止服务后为错误对话框按 OK 后才执行。

它在 Win7 上失败了,但我在 WinXP 上测试了相同的 MSI 并且工作正常(在检查正在使用的文件之前执行的自定义操作)!!!

我正在使用 VS2010 安装项目来创建安装程序,但在构建后修改它(例如使用 Orca)没有问题。

这是 InstallExecuteSequence 表的内容:

enter image description here

我发现InstallValidate检查正在使用的文件的操作,但我无法对在其之前停止服务的自定义操作进行排序,因为它在 InstallInitialize 之前要求所有自定义操作都在其之后的操作 ( ICE77 Evaluator )

ICE77 posts an error if an in-script custom action is sequenced before the InstallInitialize action or after the InstallFinalize action.



我该怎么办,要不要用 MSIRESTARTMANAGERCONTROL属性指定 Windows 安装程序包是否使用 FilesInUse 对话框功能,但我需要通知用户有关其他正在使用的文件。

最佳答案

Windows Installer 中为此提供了内置功能 - 无需自定义操作 .事实上,我强烈建议不要为此使用自定义操作,除非您的服务非常特殊(例如,停止速度很慢,或者需要关闭大量资源并且您需要验证它是否这样做)。大多数正常服务会在半分钟左右停止。我不确定 Windows 安装程序引擎配置为等待服务停止的时间。

ServiceControl table MSI 是为此提供的“幕后”功能。大多数安装工具都提供类似向导或 GUI 元素来以更简单的方式控制它。

这是一个 Installshield 版本中的服务控制 View :

enter image description here

关于windows-installer - 在执行卸载之前停止 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com