1. ホーム
  2. c#

[解決済み] C#でプログラム的にWindowsサービスをインストールするには?

2023-07-03 23:51:55

質問

私のVSソリューションには3つのプロジェクトがあります。そのうちの 1 つは Web アプリ、2 つ目は Windows サービス、最後の 1 つは Web アプリのセットアップ プロジェクトです。

私が欲しいのは、セットアップ プロジェクトでの Web アプリのインストールの終わりまでに、カスタム アクション内で、私がその時までにアセンブリの場所を持っていると仮定して、Windows サービスをインストールしようとすることです。

どのように解決するのですか。

これは、異なる OS の複数のマシン (Vista, XP, Win2k, Win2003 サーバー) でテストされたものです。

コードは以下から取得しました。 から取得しました。 から引用しているので、このコードを書いた人の功績は大きいです。

いったんDLLまたはソースファイルをプロジェクトに追加したら、ServiceTools名前空間を追加することを確認し、それから次のようないくつかの非常に便利な機能にアクセスできるようになります...

//Installs and starts the service
ServiceInstaller.InstallAndStart("MyServiceName", "MyServiceDisplayName", "C:\\PathToServiceFile.exe");

//Removes the service
ServiceInstaller.Uninstall("MyServiceName");

//Checks the status of the service
ServiceInstaller.GetServiceStatus("MyServiceName");

//Starts the service
ServiceInstaller.StartService("MyServiceName");

//Stops the service
ServiceInstaller.StopService("MyServiceName");

//Check if service is installed
ServiceInstaller.ServiceIsInstalled("MyServiceName");

これが役に立てばいいのですが。