Как наилучшим образом внедрить обновления программного обеспечения в Windows?[закрыто]

StackOverflow https://stackoverflow.com/questions/37030

  •  09-06-2019
  •  | 
  •  

Вопрос

Я хочу внедрить систему "автоматического обновления" для приложения Windows.Прямо сейчас я полуручно создаю "appcast" (приложение) который проверяет моя программа и уведомляет пользователя о том, что доступна новая версия.(Я использую НСИ для моих установщиков).

Есть ли программное обеспечение, которое я могу использовать, которое будет обрабатывать "автоматическую" часть обновлений, возможно, аналогично Искриться на компьютере Mac?Есть какие-либо проблемы / подводные камни, о которых я должен знать?

Это было полезно?

Решение

Нет более гладкого решения, чем Sparkle (о котором я знаю).

Если вам нужны простые средства для развертывания и обновления приложений, ClickOnce - это вариант. К сожалению, он негибкий (например, нет установки на компьютере вместо пользователя), непрозрачен (у вас очень мало влияния, ясности и контроля над тем, как на самом деле работает его развертывание) и нестандартен (пути, в которых хранится установленное приложение). в отличие от всего остального в Windows).

Гораздо ближе к тому, что вы просите, будет ClickThrough , побочный проект WiX , но я не уверен, что он все еще находится в разработке (если это так, они должны прояснить это ...) - и в любом случае он будет использовать MSI, а не NSIS.

Скорее всего, вам лучше всего что-то делать самостоятельно. Мне бы очень хотелось увидеть Sparkle-подобный проект для Windows, но, похоже, до сих пор никто не попробовал его.

Другие советы

Теперь есть порт Sparkle для Windows, см. http://winsparkle.org .

Автообновление Google Chrome основано на Омахе:

http://code.google.com/p/omaha/

В обзоре есть отличный раздел о том, почему это было необходимо:

  

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

Рекомендуется использовать стороннее решение, поскольку автоматическое обновление может быть проблематичным, особенно в Windows Vista / 7 (UAC). Что бы это ни стоило, продукт, который использует моя компания, - AutoUpdate + , и, похоже, он работает довольно хорошо.

Для .NET некоторое время назад Microsoft Patterns + Practices опубликовала Блок Обновления приложения.Это было (на мой взгляд) довольно раздуто и перепроектировано, но со своей задачей справилось достаточно хорошо.

По сути, он использовал "загрузчик заглушек" для проверки манифеста и веб-службы, чтобы узнать, доступна ли более поздняя версия программы, чем установленная, затем использовал технологию BITS background downloader для загрузки новой версии, если таковая была доступна на сервере.

Как только новая версия будет загружена и установлена (с помощью .NET это так же просто, как xcopy в соответствующую папку), приложение обновит манифест.При следующей загрузке программы будет запущена новая версия.

Хотя код Patterns + Practices специфичен для .NET, в нем нет ничего, что нельзя было бы скопировать для приложения, отличного от.NET, особенно если у вас есть возможность незаметно запустить процесс установки в фоновом режиме.

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

Для приложений .NET вы, возможно, захотите взглянуть на NetSparkle , вариант Sparkle для программ .NET , Он довольно новый (с 2011 года) и активно развивается.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top