4

Windows サービスのインストールに使用する Visual Studio セットアップ プロジェクトがあります。サービスは自動的に実行されるように設定されており、カスタム アクションとしてサービスを追加することで、この時点で正常にインストールされています。ただし、インストールが完了したら、インストーラーにサービスを開始してもらいたいです。これは可能ですか?

関連する注意事項として、アンインストールやアップグレード時にサービスを手動で停止する必要がありますか?

4

2 に答える 2

2

以下のカスタム アクション ハンドラーをオーバーライドして、インストール後に Windows サービスを開始します。サービス プロパティの type=Automatic を設定しても、明示的に開始しない限り、サービスは開始されません。

protected override void OnAfterInstall(IDictionary savedState)
{
        using (var sc = new ServiceController(serviceInstaller1.ServiceName))
        {
            sc.Start();
        }
}

アンインストール/アップグレードのカスタム アクションを使用してサービスを停止しても、Visual Studio インストーラーは FileInUse プロンプトを停止しません。VS Installer には、この動作を制御できなかったため、インストーラーのシーケンスを変更するための高度な機能があまりないようです。ただし、アンインストール/アップグレードのためにサービスを停止することをお勧めします。

于 2017-06-21T06:47:13.753 に答える
1

サービスの開始/停止には、カスタムアクションを使用することもできます。カスタムアクションから、次のユーティリティを呼び出す必要があります:http ://technet.microsoft.com/en-us/library/cc736564(v=ws.10).aspx

はい、アップグレード/アンインストールの場合は、ファイルを削除する前にサービスを停止する必要があります。これにより、OSからの「使用中のファイル」プロンプトを回避できます。

于 2012-05-10T20:30:20.807 に答える