Полуоткрытое автообновление - PullRequest
0 голосов
/ 29 октября 2010

Я хочу безболезненно развернуть приложение с включенным автообновлением.Однако я вынужден использовать установщик MSI для различных целей.Мы развернем приложение Windows Forms и пакет служб Windows.

Мне очень понравилось, как вы можете нажать несколько кнопок на вкладке публикации и развернуть их на веб-сервере с файлами .application и .manifest.Теперь я могу публиковать изменения, но не могу автоматически их принять.Я сам пытаюсь написать автозагрузчик.

  1. Сравнить .application файлы (локальные и удаленные),V1FBG6P353V5CT4JofOCwe0opeA =)
  2. Если хэши разные, загрузите соответствующий файл с расширением .deploy во временный путь

Теперь для Windows Forms Я мог бы написать какой-нибудь AppStarterкоторый запустит основное приложение и завершит работу основного приложения при обнаружении обновлений, перезапишет все загруженные EXE-файлы и DLL-файлы и перезапустит приложение.

Для службы Windows я хочу дождаться завершения основного цикла(цикл запускается таймером), а затем остановите таймер и примените обновления.Как?

У этого очень общего алгоритма должны быть подводные камни (о чем говорит моя интуиция), о которых я не знаю, и по этой причине я публикую этот вопрос.Что может пойти не так и когда?Как вы думаете, структура XML останется неизменной во времени (по крайней мере, в зависимости от существующих тегов)?

Я также загрузил .NET Application Updater .Просто я сам должен формировать XML-файлы и не уверен, позволит ли он работать со службами Windows.

1 Ответ

0 голосов
/ 03 ноября 2010

Я думаю, у меня была похожая проблема.Я развернул службу Windows с двумя экранами Windows.Один экран для управления запуском / остановкой службы Windows и установкой / удалением.Еще один вариант для развертывания с использованием ClickOnce.

Я добавил службу Windows, а также экран конфигурации в проект развертывания в виде файлов содержимого.Когда клиент развертывает проект ClickOnce, все эти файлы будут развернуты на компьютере.Поскольку ClickOnce не может развернуть службу Windows, пользователю необходимо вызвать экран конфигурации и установить / запустить службу Windows, скопировав службу Windows в папку по умолчанию.

Копирование службы Windows в другую папку необходимо, поскольку Clickonce меняет папки для каждого выпуска.Развернутое приложение будет позже запланировано для проверки обновлений.Когда будет доступен последний выпуск, он предложит службе Windows остановиться и обновится, а затем снова запустит службу Windows.

...