インストール ループ:「指定されたサービスは既に存在します」および「指定されたサービスはインストール済みサービスとして存在しません」

インストール ループ:「指定されたサービスは既に存在します」および「指定されたサービスはインストール済みサービスとして存在しません」

Windows Server 2012 R2 に社内開発のサービスをインストールすると、何らかの理由で、InstallUtil.exe がサービスが存在すると認識し、同時に存在しないと認識する状態になります。インストール コマンドを実行すると、プロセスが開始され、次のエラーでロールバックします。

System.ComponentModel.Win32Exception: 指定されたサービスは既に存在します

InstallUtil.exe にそのサービス ファイルのアンインストール コマンドを実行すると、プロセスは最終的に次のエラーで完了します。

System.ComponentModel.Win32Exception: 指定されたサービスはインストールされたサービスとして存在しません

実際、アンインストールして再インストールする前には、このサービスが存在していましたが、Powershell コマンド Get-Service、アセンブリ ファイル、レジストリのいずれにも、このサービスの痕跡は見つかりませんでした。これは、完全なアンインストール/再インストールを行わずに (つまり、実行ファイルを上書きするだけで)、コンパイルされたソフトウェアでサービス名が変更されたことが原因だと思います。私の質問は、問題を診断するために今何ができるのかということです。

答え1

原因が判明し、別の開発者が誤ってプロジェクトにまったく同じサービス名を持つ 2 番目のサービス インストーラーを追加したことが原因であると判明しました (もちろん、開発者はこの変更をテストしていませんでした)。まったく同じ名前を持つ 2 つのサービスをインストールしようとした結果は、Windows ログやインストール ログのいずれにも反映されず、サービスがコマンド ライン経由でインストールされたときのコマンド プロンプトにも反映されませんでした。

この診断を行うために、私はソース コードにアクセスし、サービス名を自分で変更しました。再構築してインストールすると、サービス リストに 2 つのサービスが追加されました。

答え2

私の場合、私が選んだ「モニター」というやや一般的な名前は、実際にはすでに存在していたことが判明しました。私はより具体的な名前を考え出し、すべてがうまくいきました。

関連情報