Siddharth Rai Ответов: 2

Заменить существующий ехе услуг форма последней версии на клиентской машине


Здравствуйте Сэр,

У меня есть сервис, работающий на клиентской машине, всякий раз, когда мы вносим некоторые изменения в сервис exe, мы предоставляем его и заменяем вручную.
Можно ли проверить эту службу в месте общего доступа, если есть последняя доступная версия, остановить ее самостоятельно и заменить exe на последнюю и запустить ее самостоятельно.

Что я уже пробовал:

i have create a separate thread form service which will stop  service and copy file but not able to start.

2 Ответов

Рейтинг:
2

Dave Kreskowiak

У вас должен быть второй исполняемый файл, который делает это. Файл. EXE не может заменить сам себя, так как файл заблокирован во время выполнения кода.

Ваш" updater". EXE должен был бы запускаться время от времени, проверяя установленную версию службы против той, которая доступна на сервере. Если доступна другая версия, получите новый исполняемый файл службы, остановите службу, замените ее .EXE и перезапустить службу.

Ваш "апдейтер" может быть либо обычным консольным приложением, запускаемым из запланированных задач Windows, либо написанным как собственный сервис.


Рейтинг:
0

RickZeeland

Грязный трюк: Windows не позволяют запущенный исполняемый файл должен быть переименован, см. Об этом статью CodeProject: Простое автоматическое обновление: пусть ваше приложение обновит себя, используя 2 строки кода[^]
Однако не знаю, сработает ли это для службы...