13

重複の可能性:
WindowsサービスをプログラムでC#にインストールする方法は?

「InstallUtil.exe/uMyService.exe」を実行せずにC#を使用してプログラムでサービスを削除する方法はありますか?

4

4 に答える 4

23

System.ServiceProcess.dllのServiceInstaller.Uninstallメソッドを使用できます。例えば:

ServiceInstaller ServiceInstallerObj = new ServiceInstaller(); 
InstallContext Context = new InstallContext("<<log file path>>", null); 
ServiceInstallerObj.Context = Context; 
ServiceInstallerObj.ServiceName = "MyService"; 
ServiceInstallerObj.Uninstall(null); 

このメソッドは、アンインストールする前に、最初にサービスを停止しようとします。

于 2012-08-30T16:30:47.387 に答える
1
System.Configuration.Install.ManagedInstallerClass
                            .InstallHelper(new string[] { "/u", executablePath });
于 2012-08-30T16:30:16.060 に答える
1

サービスは、WindowsレジストリのHKLM \ SYSTEM \ CurrentControlSet\servicesに一覧表示されています。サービスの名前(表示名ではなく、登録された名前)に対応するキーを削除すると、サービスは事実上「登録解除」されます。これは、 Microsoft.Win32.Registryオブジェクトを使用してプログラムで実行できます。レジストリエントリを変更するには、実行中のコンピュータに対するCAS権限が必要です。

于 2012-08-30T16:31:28.357 に答える
1

サービスをアンインストールしようとしている場合、それ自体の内部から作成し、プロジェクトにインストーラーを追加した場合は、インストーラークラスをインスタンス化して、Uninstallを呼び出すだけです。たとえば、インストーラーをデザイナーサービスにドラッグし、そのコンポーネントに「ProjectInstaller」という名前を付けた場合、次のコードを使用してサービスをアンインストールできます。

var installer = new ProjectInstaller();
installer.Uninstall(null);
于 2012-08-30T16:42:01.103 に答える