Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows installer 在执行卸载之前停止windows服务_Windows Installer_Custom Action_Orca - Fatal编程技术网

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

Windows installer 在执行卸载之前停止windows服务,windows-installer,custom-action,orca,Windows Installer,Custom Action,Orca,我有一个安装程序,它安装了包括windows服务在内的几个组件,安装后,它将使用CustomAction启动安装到系统上的服务 卸载应用程序时,安装程序会要求关闭应用程序,然后再继续 我创建了一个将停止服务的自定义操作,并计划了卸载操作 但在手动停止服务后,直到我按下错误对话框的OK键,它才会执行 它在Win7上失败了,但我在WinXP上测试了相同的MSI,工作正常(在检查使用中的文件之前执行的自定义操作) 我使用VS2010安装项目来创建安装程序,但在构建之后修改它(例如使用Orca)并没有

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

卸载应用程序时,安装程序会要求关闭应用程序,然后再继续

我创建了一个将停止服务的自定义操作,并计划了卸载操作

但在手动停止服务后,直到我按下错误对话框的OK键,它才会执行

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

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

以下是InstallExecuteSequence表的内容:

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

如果脚本内自定义操作在之前已排序,ICE77将发布错误 InstallInitialize操作或InstallFinalize操作之后


我应该怎么做,我应该使用指定Windows Installer软件包是否使用FilesInUse对话框功能的属性,但我需要通知用户其他正在使用的文件。

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

MSI的是这方面的“引擎盖下”功能。不过,大多数安装工具都提供类似向导或GUI的元素,以便以更简单的方式进行控制

以下是一个Installshield版本中的服务控制视图:


这几乎对我起了作用,但似乎缺少了一些东西。IS将安装/删除该服务,但按此方式安装后无法运行!当我使用自定义安装时,其中的一部分是为在exe中找到的服务提供类名。这是没有道理的。(此服务是用Python btw编写的,但使用pyInstaller转换为exe)。我可以通过CA安装/卸载,但我仍然停留在这里发布的原始问题上!我在VS2015中遇到了与windows installer相同的问题。您是如何摆脱这个问题的?您需要应用下面的答案,但由于您使用的是VS installer project,因此无法自动将该行添加到该表中。我建议创建一个构建后操作来执行——例如——一个JScript文件,该文件手动插入该行(检查)以进行示例行插入