Может ли приложение Winforms разблокировать / заменить собственный exe-файл для автоматического обновления? - PullRequest
2 голосов
/ 23 сентября 2010

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

Как только я загружаю новый exe-файл из веб-службы, можно ли разблокировать исполняемый exe-файл, заменитьи перезапустить приложение?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2010

Нет. Вы не можете заменить исполняемый файл. Вы получите нарушение доступа.

Лучший вариант - создать отдельный маленький исполняемый файл, который заменит вас. Ваше приложение может вызвать его, закрыть самостоятельно, а второй исполняемый файл может выполнить загрузку / замену / перезапуск для вас.

Это также имеет то преимущество, что позволяет вам настроить «обновленный», требуя повышенные разрешения, которые могут потребоваться в зависимости от того, где установлено заменяемое приложение.

1 голос
/ 23 сентября 2010

Я бы этого не делал (это не сработает; вы получите нарушение прав доступа).Вместо этого вы можете:

  • Загрузить другой исполняемый файл куда-нибудь на ПК пользователя (например, временные документы или папку вашего приложения), а затем позволить этому обновить вашу программу.
  • После завершения обновления запустите обновленную программу и передайте в нее местоположение средства обновления, где обновленное приложение теперь может удалить его.Или просто оставьте средство обновления там, где оно есть.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...