1

私は簡単なWindowsサービスを作成しました。このソリューションにセットアッププロジェクトを追加しました。私はサービスとセットアッププロジェクトを成功裏に構築することができました。また、ビルド後、私は正常に作成されたMSIファイルを使用することができます。 私はWindowsサービスを正常にインストールでき、その機能を達成することができました。Windowsサービスのアンインストール

サービスをアンインストールして、プログラムの追加と削除からこのサービスを削除します。このサービスは、「プログラムの追加と削除」からアンインストールされます。 しかし、私はまだサービスのリストでそのサービスを見ることができます。 Windowsサービスのセットアップを作成するときに何か追加する必要がありますか?

答えて

0

あなたがインストール前に実行する外部コマンドを設定することができ、セットアッププロジェクトを作成:右のVisual StudioからSetupProjectをクリックして、ビューから「カスタム アクション」を選択

  1. を。
  2. これらのカスタムアクションは、インストール、コミット、ロールバック、アンインストールがあります。
  3. は右、他の後に、これらのアクションのいずれかをクリックして カスタムアクションを追加します。
  4. これを実行すると、プロジェクトウィンドウに選択項目が表示されます。
  5. ウィンドウで、アプリケーションフォルダをドロップダウンメニューから選択します。これにより、Windowsサービスのプライマリ出力が一覧表示され、選択してokをクリックします。
  6. セットアッププロジェクトを保存してビルドします。
+0

はい、それは私が外部でやるべき仕事です。サービスをアンインストールするときに、サービスを完全にアンインストールする必要があります。私がセットアッププロジェクトで実装できるものはありますか? – sp4stack

+0

@ sp4stack更新された回答を参照してください。 –

+0

ありがとうKoby。これで私の問題は解決しました。答えとしてマークしてください。しかし、一次アウトプットのために「OK」をクリックしている間に、「操作を完了できませんでした。例外が発生しました ' – sp4stack

0

サービスインストーラクラスを使用してサービスをアンインストールするときの典型的な問題は、セットアッププロジェクトでサービスの自動停止が行われないことです。そのため、アンインストールによってサービスが削除されます。それはそれを停止しないので、それを削除することはできません。システムを再起動すると、サービスが最後に消滅することがあります。

標準的な解決策は、アンインストールカスタムアクションをオーバーライドして、サービスを明示的に停止する独自のコードを追加することです。その後、base.Uninstall()はそれを削除できます。

さらに優れたソリューションは、コードなしでこれを行う組み込みのWindowsインストーラ機能(ServiceInstallおよびServiceControlテーブル)をサポートする別のツールを使用することです。

関連する問題