2

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

関連するアンインストールおよび/またはアップグレードでサービスを手動で停止する必要がありますか?

答えて

1

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

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

+0

セットアップアクションの「カスタムアクション」ルート要素を右クリックし、「カスタムアクションの追加...」を選択してサービスを選択し、インストーラが自動的に適切なカスタムアクションを追加して処理しました。サービス自体のインストール/アンインストール。サービス自体を開始するためにいくつかのコードを追加する必要があるようですね。また、サービスの実行中に「ファイルが使用中」のエラーが発生していないため、これが本当に必要かどうか疑問に思っています。 – Dennis

+2

OK、私はそれを理解したと思う。サービスインストーラクラスのCommitメソッドをオーバーライドする必要があります。次に、新しいServiceControl( "servicename")を呼び出します。Start()。 – Dennis

0

インストール後にWindowsサービスを開始するには、カスタムアクションハンドラの下をオーバーライドします。

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

我々はアンインストール/アップグレードのためのカスタムアクションを使用してサービスを停止してもVisual StudioのインストーラがFileInUseプロンプトを停止されていません:あなたは、サービスプロパティの種類=自動に設定しますが、我々は、明示的に開始しない限り、サービスは開始されません。 VS Installerのように、この動作を制御することができなかったために、インストーラの順序を変更するための洗練さはあまりありません。しかし、アンインストール/アップグレードのためにサービスを停止することをお勧めします。

関連する問題