Как получить консольное приложение для проверки обновлений без использования ClickOnce? - PullRequest
2 голосов
/ 07 декабря 2011

В обычном приложении Windows я могу использовать ...
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CheckForUpdate()
... чтобы определить, доступно ли обновление.

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

Что эквивалентно CheckForUpdate() для консольного приложения без использования ClickOnce?

1 Ответ

5 голосов
/ 07 декабря 2011

Вам понадобится что-то на стороне сервера, которое приложение может использовать для определения самой последней версии. Лично я бы пошел с веб-сервисом, который возвращает самый последний номер версии и URL-адрес, где его можно загрузить, но это также можно сделать со статической страницей, которая анализируется для этой информации. Приложение запускается, проверяет номер версии на номер, возвращенный из сервиса. Если служба сообщает о более новой версии, используйте HttpWebRequest (или другой метод) для загрузки новой версии. Если новая версия упакована как установщик, вы можете запустить установщик и выйти из текущего запущенного экземпляра. Если вы хотите что-то более тихое, чем установщик, вам понадобится способ обновить ваш exe-файл. Обычно это делается вторым приложением (программой обновления), которая ожидает выхода из основного приложения и перемещает новую версию исполняемого файла на место, а затем перезапускает приложение. Следует иметь в виду, что для того, чтобы это работало, пользователь, который запускает приложение, должен иметь разрешение на запись в каталог программы.

Если это больше корпоративная среда, где вы хотите использовать файловые ресурсы, вы можете сделать это по-другому. Пусть программа проверит хорошо известный общий каталог на наличие текстового файла с самой последней версией и путем к обновлению. Разбор текстового файла для получения информации аналогичен приведенному выше, и получите новую версию по указанному пути, используя классы пространства имен system.io. Это в основном та же операция, но с использованием путей к файлам вместо веб-запросов.

...