3

私のインストーラーには、NTサービスをインストールするコンポーネントがあります。マイナーアップグレード中にサービスが停止しないという問題があります。アップグレード中にinstallshieldによって生成されたログを確認し、アクションStopServicesを実行していることを報告し、そのリターンコードは1です。サービスの開始/停止イベントをログに記録するプロセスハッカーも開始しましたが、アップグレード中にサービスが停止することはありません。また、アンインストール中にサービスが停止してから削除されたことを確認しました。なぜこれが起こっているのか考えていますか?

私はinstallshield2008を使用していますが、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 に答える