VS 2008 SP1
Я создал приложение, которое я установил на компьютер пользователя. Однако я хочу, чтобы приложение самообновлялось. Но я не уверен, действительно ли это будет обновлять приложение.
Приложение загрузит все файлы с веб-сервера и заменит файлы в каталоге, где установлена программа. Пользователь перезапустит приложение.
Я просто хочу быть уверенным, потому что я не могу заменить установленные файлы на обновленные. Когда приложение будет запущено. Так что действительно приложение не может удалить/заменить себя.
Итак, я думал, что могу загрузить в другой каталог, если программа установлена в этом каталоге "program files/application/1.0.0", тогда я могу загрузить файлы в "program files/application/1.0.1" ".
Однако, когда программа перезагружается, как она может знать, что она должна выполняться из каталога 1.0.1?
Я не могу использовать clickonce или блок обновления для этого.
Большое спасибо за любой совет,
Вы можете обернуть приложение небольшой программой-загрузчиком, которая проведет проверку версии. Если он устарел, загрузите новые двоичные файлы и перезапишите старые. Если вы хотите сохранить всю версию, вы можете:
c:\program files\mycompany\myapp\loader (the newer version will point to the latest directory)
c:\program files\mycompany\myapp\v1.0
c:\program files\mycompany\myapp\v1.1
Если это в локальной сети, вы можете позволить себе использовать пропускную способность только для повторной загрузки двоичных файлов при запуске.
Хорошим вариантом является создание независимого приложения Updater.
Программа обновления загрузит новейшую версию и убьет/заменит старый.
Я думаю, что это лучший вариант, потому что вы можете выполнить обновление в основной аппроксимации (так что вы можете сказать, что оно самообновлено) или напрямую с помощью ярлыка.
Обновление может проверить, запущено ли приложение, и попросить пользователя выйти из приложения или убить его самостоятельно.
Простите мой английский...
Удачи.
Все это уже сделано для вас, если вы используете развертывание ClickOnce (свойства проекта, публикация).
Я бы посмотрел на ClickOnce. Он может быть настроен несколькими способами, проверять наличие обновлений перед запуском приложения, загружаться с сервера при каждом запуске или проверять наличие обновлений после запуска приложения.
Я сделал ClickOnce Deployment и независимое приложение для обновления, они оба работают хорошо. Очевидно, что у вас будет больше гибкости над обновляющим приложением, которое вы создаете самостоятельно, однако ClickOnce также может быть настроен для установки таких предварительных условий, как .NET Framework, установщик Windows и т.д.... для запуска вашего приложения.
Wix Clickthrough может удовлетворить ваши потребности: http://wix.sourceforge.net/clickthrough.html
Используйте установщик Windows для установки и обновления. Если вы подписываете свои установочные пакеты, пользователь может обновить ваше приложение без каких-либо привилегий администратора.
Я создал веб-сайт и приложение, которое демонстрирует функциональность того, что вы хотите на мой сайт.