2011-06-30 14 views
2

Visual Studio 2010セットアッププロジェクトを使用してインストールするアプリケーションを作成しました。インストールの一環として、私のアプリケーションはWindowsサービスをインストールして起動します。そこに問題はありません。インストール前にサービスを停止する

新しいバージョンのアプリケーションをリリースすると、インストーラはアプリケーションフォルダの内容を上書きします。残念ながら、すでに実行中のサービスを上書きすることはできません。

MSIがファイルのコピーを開始する前にサービスを停止するにはどうすればよいですか?私はインストールしないカスタムブートストラップ(インストーラの前提条件)を考えていますが、サービスを削除します。 Orcaを使用してインストール前にアクションを追加することはできますか?それとも別の方法を知っていますか?

答えて

3

通常これはservice control operationsによって行われます。基本的には、アンインストールのために設定された停止フラグと削除フラグが必要です。

別の方法として、カスタムアクションでServiceInstaller.Uninstallを使用してサービスを停止および削除する方法があります。

あなたが使用ダイアログでファイルを避けたい場合は、この方法を試すことができます。 Problem stopping Windows Service from Installer Class. Events fire too late

+1

感謝を!サービス制御操作は、私が後にしているように見えます。私はWiXへのアップグレードが将来私の頭痛の多くを節約すると思う。 Visual Studioのセットアッププロジェクトはあまりにも制限されており、特にアクションシーケンスを決定するのには限界があります。 –

関連する問題