Автоматическое и тихое обновление NSIS

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

Dropbox, Spotify и Chrome прекрасно обновляются, и никто этого не замечает. Итак, я взглянул на перемещаемую папку Dropbox в AppData и нашел файл с именем DropboxUpdateHelper.exe со значком NSIS. В папке Spotify я смог найти только SpotifyHelper.exe и упоминание NSIS в Условиях.

Есть ли руководство по установке приложения в перемещаемой папке и установке автоматического автоматического обновления? Я не зациклен на NSIS, но предпочел бы бесплатный установщик с открытым исходным кодом.


person Thomaschaaf    schedule 01.09.2012    source источник


Ответы (2)


У NSIS есть плагин INetC, который можно использовать для загрузки вещей из Интернета, но я не знаю если есть руководство по автоматическому обновлению. Вы также можете взглянуть на плагин VPatch ...

Здесь нужно подумать о многих переменных:

  • Должно ли ваше основное приложение искать обновления или просто запускать средство обновления при запуске приложения (или Windows), чтобы оно могло проверить?
  • Подписаны ли файлы на сервере или у вас есть другие способы определить недопустимые / поврежденные / MitM обновляется?
  • Требуется ли вам контроль доступа / DRM перед загрузкой / применением обновлений?
  • Как вы будете обрабатывать обновления основного номера версии? Будете ли вы поддерживать более одной основной версии или выполнять принудительное обновление?
  • Для обновления требуются права администратора? Обработка UAC?
  • Как вы собираетесь поддерживать обновление с 1.0 до 1.2? Сначала обновить до 1.1 или поддерживать все возможные пути обновления младших версий?

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

ИМХО, это непростой вопрос, и я не думаю, что вы сможете найти решение, которое точно соответствует вашему дизайну / требованиям ...

person Anders    schedule 02.09.2012

Файлы из Интернета легко загружать с помощью NSIS (для этого есть несколько плагинов: NSISdl, InetC, ...), но такая функциональность больше связана с кодированием.

Для этого нет точного решения - как сказал Андерс, вам нужно указать каждую деталь для достижения требуемого поведения.

person Slappy    schedule 03.09.2012