私は、1つのWindowsサービスアプリケーションと1つのUIアプリケーション(それぞれ独自のスタンドアロンEXE)で構成されるアプリケーションに対して、Inno Setup 5.5.6(u)を使用してインストーラを作成しています。インストーラでは、サービスとUIアプリの両方をインストールするか、サービスなしでUIアプリのみをインストールするかを選択できます。すべてこれはうまく動作します。特定のアプリケーションのみを閉じるように促す
インストーラが既存のインストールで実行されており、インストーラがサービスが実行中であることが検出された場合に問題が発生します。私は、アップデートが実行される前に明示的にサービスを停止するコードを持っていますが、コードが実行される前にこの他の画面がキャッチされ、プロセスを自動的に終了するためにInno Setupをユーザーに提供します。
procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: begin
//Just before install starts
if ServiceExists(SVC_NAME) then begin
StopMyService;
end else begin
ServiceWasRunning:= True;
end;
InstallMyService; //Ignores if already exists
end;
ssPostInstall: begin
//Just after install finishes
if ServiceWasRunning then begin
StartMyService;
end;
end;
end;
end;
今、私は完全にこの検出を無効にしたくない - 私は、サービスの実行可能ファイルをチェックする気にしないようにインストーラに指示し、それでもUI実行可能ファイルを確認したいです。
どうすればよいですか?