Каков наилучший способ обновить установку MSI через Интернет? - PullRequest
18 голосов
/ 07 февраля 2012

Каков наилучший способ обновить установку MSI через Интернет?

ClickOnce не поддерживает MSI.

Мне нужно, чтобы обновление происходило автоматически через Интернет, в том жекак происходит обновление Windows.

В идеале, я бы хотел, чтобы мое приложение автоматически обнаруживало наличие обновления, загружало и устанавливало его.

Ответы должны касаться только установок MSI.Я не против, если для мониторинга обновлений должна быть установлена ​​служба Windows.

Ответы [ 5 ]

14 голосов
/ 14 февраля 2012

Вот что я недавно сделал для клиента:

Пользовательский интерфейс работает как зарегистрированный пользователь.

Служба работает как Система. Сервис проверяет контент и загружает его во временный каталог. Затем он объявляет MSI с помощью команды / JM. Теперь установщик может быть установлен непривилегированным пользователем.

Служба отправляет приложению сообщение IPC о том, что пора устанавливать. Приложение запускает установщик, передавая ему флаг, указывающий на перезапуск приложения. Приложение прекращает выпуск заблокированных файлов.

В конце установщика флаг заставляет установщик перезапустить приложение.

Также взгляните на библиотеку wuw4. Это помогает в создании многих из этого решения.

Это сложный шаблон, но он работает очень хорошо. У меня есть компания, которая может помочь вам сделать это решение. :)

2 голосов
/ 08 февраля 2012

Вы можете использовать утилиту msiexec. Здесь вы можете найти пример.

1 голос
/ 17 февраля 2012

Вот что я обычно делаю (это просто концепция обновления моей программы):

  • Использование Advanced Installer Или любой другой MSI installer/packer поддерживает Command Line дляупакуйте файлы вашей обновленной программы.Вам необходимо правильно настроить параметры и проверить их, прежде чем перейти к следующему шагу.

  • Перейдите на Visual Studio -> выберите свой проект, затем -> свойства -> События сборки.

  • В текстовом поле «Post-Build event command line» введите параметры командной строки, которые вы создали ранее, затем нажмите «ОК».

  • Теперь, когда вы создаете свой проект, Visual Studioавтоматически упакует ваши файлы с помощью установщика / упаковщика MSI.

  • Последний шаг - поиск FTP Client работ из командной строки.

  • Установите правильные параметры и добавьте их в «Событие после сборки» после предыдущего.

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

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

РЕДАКТИРОВАТЬ: еще одна вещь, вы также можете добавить простую процедуру для просмотрадля новых обновлений на сервере внутри вашей программы.что-то вроде проверки MD5-хэша файлов или версий файлов и т. д., как только процедура находит новое обновление, она должна запросить об этом пользователя, а затем вы можете сказать пользователю загрузить последнее обновление и т. д. *

1 голос
/ 14 февраля 2012

Установщик Windows не поддерживает автоматические обновления и не обрабатывает их доставку. Компания, в которой я работаю, продает продукт, нацеленный на обновления и больше .

0 голосов
/ 18 февраля 2012

Вы проверяли App-Virtualization?http://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/virtualization/default.aspx

Это отличный способ для потоковой передачи ваших исполняемых файлов / msi клиентам, при этом всегда выполняется последняя версия msi.

...