「InstallUtil.exe/uMyService.exe」を実行せずにC#を使用してプログラムでサービスを削除する方法はありますか?
質問する
25888 次
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 に答える