Каков наилучший способ обновления установки MSI через Интернет? - программирование
Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

  • Перейдите в Visual Studio → выберите ваш проект, затем → properties → Build Events.

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

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

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

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

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

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

EDIT: еще одна вещь, вы также можете добавить простую процедуру поиска новых обновлений на сервере внутри вашей программы. что-то вроде проверки хэша MD5 файлов или версий файлов и т.д., когда процедура найдет новое обновление, оно должно спросить об этом пользователя, а затем вы можете сообщить пользователю загрузить последнее обновление и т.д.