3

在我的安装程序中,我有一个安装 NT 服务的组件。我有一个问题,在小升级期间服务没有停止。我观察到 installshield 在升级过程中生成的日志,它报告它正在执行 StopServices 操作,它的返回码是 1。我还启动了进程黑客来记录服务启动/停止事件,但在升级过程中服务从未停止过。我还验证了在卸载过程中服务停止然后删除。知道为什么会这样吗?

我正在使用 installshield 2008,但任何与 installshield 相关的答案都会非常有帮助。

4

2 回答 2

1

最终我无法克服这个问题。花了几天时间试图弄清楚到底发生了什么,但无法弄清楚为什么服务在小升级期间既没有停止也没有启动。我被迫编写执行此操作并用于sc.exe它们的自定义操作。这不是我被迫通过自定义操作修复的 installshield 中第一个无法解决的问题。希望这个答案可以为某人节省几天时间。

于 2013-01-29T08:09:32.903 回答
0

它可以通过安装脚本和执行它的自定义操作来完成。

停止/启动服务的示例(我在 IS2016 中使用过):

#include "ifx.h"

//Function to stop the service
export prototype stopService(HWND);
function stopService(hMSI)
begin
    ServiceStopService ( "my service name" );
end;

//Function to start the service
export prototype startService(HWND);
function startService(hMSI)
begin
    ServiceStartService ( "my service name" ,"");
end;

为了仅在次要升级期间运行自定义操作,请将其条件设置为:

REINSTALLMODE=vomus
于 2017-05-07T14:31:17.797 回答