Powiel możliwe:
How to install a windows service programmatically in C#?programowo usunąć usługę z wykorzystaniem C#
Czy istnieje sposób programowo usunąć usługę przy użyciu C#, bez konieczności wykonywania „InstallUtil.exe/u MyService. exe "?
Powiel możliwe:
How to install a windows service programmatically in C#?programowo usunąć usługę z wykorzystaniem C#
Czy istnieje sposób programowo usunąć usługę przy użyciu C#, bez konieczności wykonywania „InstallUtil.exe/u MyService. exe "?
Można użyć ServiceInstaller.Uninstall method w System.ServiceProcess.dll. Na przykład:
ServiceInstaller ServiceInstallerObj = new ServiceInstaller();
InstallContext Context = new InstallContext("<<log file path>>", null);
ServiceInstallerObj.Context = Context;
ServiceInstallerObj.ServiceName = "MyService";
ServiceInstallerObj.Uninstall(null);
Ta metoda podejmie próbę zatrzymania usługi przed odinstalowaniem.
Nie rozumiem, metoda Odinstaluj pobiera savedState, a nie nazwę usługi. –
Masz rację. Zaktualizowany w innym przykładzie, który znalazłem .. –
InstallContext nie w System.ServicesProcess – ArthNRick
System.Configuration.Install.ManagedInstallerClass
.InstallHelper(new string[] { "/u", executablePath });
Z jakiegokolwiek powodu twierdzi, że usługa nie jest zainstalowana, ale jest. Jest to usługa zewnętrzna napisana w .NET. Mam prawa administratora do mojego procesu. – modiX
Usługi są wymienione w rejestrze systemu Windows w katalogu HKLM \ SYSTEM \ CurrentControlSet \ services. Jeśli usuniesz klucz odpowiadający danemu imieniu usługi (nie nazwa wyświetlana, ta, pod którą została zarejestrowana), będziesz skutecznie "wyrejestrował" usługę. Możesz to zrobić programowo przy pomocy obiektu Microsoft.Win32.Registry. Będziesz potrzebował uprawnień CAS na komputerze wykonawczym, aby zmodyfikować wpisy rejestru.
Jeśli próbujesz odinstalować usługę, napisałeś sam z siebie i dodałeś instalator do projektu, możesz po prostu utworzyć instancję klasy instalatora i zadzwonić Odinstaluj. Na przykład, jeśli przeciągnięty instalatora na usługi projektanta i nazwany że komponent „ProjectInstaller”, można uzyskać dostęp do usługi, aby odinstalować się z następującego kodu:
var installer = new ProjectInstaller();
installer.Uninstall(null);
Jest to usługa napisany w języku C#? –
Uwaga: Żadna z wymienionych poniżej metod nie będzie działać ze strony internetowej uruchomionej w IIS. IIS nie pozwoli na to ze względów bezpieczeństwa. – Kevin