Невозможно удалить .exe файл после удаления службы Windows через c # - PullRequest
0 голосов
/ 27 сентября 2018

Я использую System.Configuration.Install.ManagedInstallerClass.InstallHelper для установки и удаления службы Windows в другой службе.Проблема в том, что когда служба установлена, exe службы заблокированы или что-то еще, но мне нужно удалить служебные файлы после удаления службы.

Установка службы:

System.Configuration
      .Install
      .ManagedInstallerClass
      .InstallHelper(new string[] { "/i", serviceExePath });

Удаление службы:

System.Configuration
      .Install
      .ManagedInstallerClass
      .InstallHelper(new string[] { "/u", serviceExePath });

Описание ошибки при попытке удалить exe

1 Ответ

0 голосов
/ 04 октября 2018

У меня была такая же проблема.Оказывается, что ManageInstallerClass устанавливает блокировку дескриптора файла для службы, и вы не можете удалить ее, пока не завершится процесс блокировки.Я справился с этим, используя следующий код:

    var s = new ServiceInstaller
    {
        Context = new InstallContext(),
        ServiceName = "<YOUR SERVICE NAME>"
    };
    s.Uninstall(null);

После завершения ServiceInstaller вы сможете удалить служебный файл.

Для использования ServiceInstaller у вас будетвключить System.ServiceProcess в ваш класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...