C#で開発されたWindowsサービスアプリケーションがあります。同じサービスを異なる構成ファイルで実行する必要があります。これらを同じマシンで実行するには、サービスの名前を変更する必要があります。ソリューションの複数のコピーを作成できますが、サービスの名前を変更する方法がわかりません。
ありがとう
ServiceBase
から派生するwinサービスクラスには、ServiceName
と呼ばれる設定可能な継承されたプロパティがあります。 app.configを作成し、サービス名の設定を追加して、それに応じてwinサービスクラスにそのプロパティを割り当てることができます。そうすれば、app.configの設定を変更する限り、各サービス名は一意になります。
サービス名は、ProjectInstallerデザインモードでも編集できます。 ServiceInstallerにServiceNameというプロパティがあります。
Windowsサービスの構成は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ...の下のレジストリに保存されます。キー(「フォルダー」、およびここではサービスの実際の名前)と値「表示名」。
レジストリの不適切な編集で問題が発生しないように、 SC.EXEなどのツールを使用してサービスを構成する の方がよい場合があります。 SCはサービスの名前を変更できませんが、サービスを削除および作成することはできます(すべての設定を正しく行うようにしてください!)。