4

C# を使用して記述したサービスを再インストールしようとしています。これが初めて機能しました。installutil を使用してインストールを処理すると、サービスがサービスのリストに表示され、開始できました。次に、コードを更新し、サービスをアンインストールしました。サービス ウィンドウを閉じる必要があることがわかった後、サービスが消えた (つまり、正常にアンインストールされた) ように見えました。ただし、サービスを再度インストールしようとすると、次のメッセージが表示されました。

System.ComponentModel.Win32Exception: The specified service already exists

サービスウィンドウで見ることができなかったので、これは奇妙に思えました。サービスに関するレジストリ キーを削除した後、ようやく問題が見つかったと思いましたが、残念ながらこれで何も解決しませんでした。

また、矛盾したメッセージが表示されるため、再度アンインストールしても問題は解決しません。

System.ComponentModel.Win32Exception: The specified service does not exist as an installed service

私は何を信じるべきですか?サービスは存在しますか、それとも存在しませんか? 猫が死んでいるか生きているかを解明しようとしている物理学者のように感じます。ここに誰かがこの問題を解決するのに役立つ何かを知っていることを願っています.

4

6 に答える 6

7

関連する SO-answer は、最終的に私を正しい方向に向けました (なぜ私はそれを Google または SO 自身の検索で見つけられなかったのかわかりません)。とにかく、明らかに、Visual Studio によって生成された Designer.cs は、プロセスとサービスのインストーラーも作成します。もちろん、手動で作成したインストーラーと同じ名前のサービスをインストールします。自分のインストーラーを削除すると、問題が解決しました。

于 2011-09-27T15:18:47.813 に答える
6

実際の問題は、コードに serviceProcessInstaller と serviceInstaller のオブジェクトを複数回追加したことです.一度だけ追加する必要があります..

projectinstaller の designer.cs ファイルを開くと、すでにそこに追加されていることがわかります...

于 2012-03-06T12:06:56.560 に答える
2

Service Installer で Service Name プロパティを確認します。

于 2015-07-21T03:42:54.497 に答える
2

私も同じエラーが発生していたので、解決するために私がしたことは次のとおりです。

  • ソリューション エクスプローラーから ProjectInstaller.cs を開きます。
  • コードビューがある場合は、右クリックしてビューデザイナーモードに入ります

デフォルト 2とは別の新しいインストーラー、つまりserviceprocessInstaller1ServiceInstaller1が表示されます。

自動的に生成されたインストーラーを削除するだけです。ビルドしてインストールすると、動作します。

于 2014-12-01T09:59:26.817 に答える