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

399
Giulio

Я полагал, что служба, работающая, как и любой другой процесс, блокирует свой исполняемый файл (как при использовании).

На самом деле мне нужно остановить службу, когда я создаю новую версию в Visual Studio, а затем снова запускаю ее.

Я не понимаю, как они обновили исполняемый файл без остановки службы (во время развертывания), а затем - после этого - просто перезапустили службу, чтобы изменения вступили в силу.

У кого-нибудь есть объяснение этому?

0
Используйте команду SC. Остановите службу: `sc stop service_name`, затем измените исполняемый файл:` sc create имя_сервера binPath = abc.exe`, затем запустите службу `sc start service_name` Biswapriyo 7 лет назад 0

1 ответ на вопрос

1
Giulio

На самом деле файл не может быть удален (или аналогично вы не можете перезаписать тот же файл), но может быть переименован или перемещен.

Таким образом, его можно заменить.

Подобный вопрос здесь (показывая удивление для этого поведения действительно).