Подтвердить что ты не робот

Бесплатное решение для автоматического обновления с помощью приложения .NET/С#?

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

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

Пользователи, потому что, хорошо, "Вы когда-нибудь собираетесь внедрять автоматическое обновление?" "Будет ли когда-нибудь функция автоматического обновления?" И если мне случается испортить процесс обновления, начинают появляться вилы.

В прошлом я изучал:

  • WinSparkle - Нет обновлений в приложении, а DLL - 500 КБ. Мое текущее решение - это несколько КБ в исполняемом файле и не имеет обновлений в приложении.
  • .NET Application Update Component - К сожалению, я не могу понять документацию.
  • Eduardo Olivera AutoUpdate - Это, похоже, не поддерживает ничего, кроме работы с файлами, которые не используются.
  • wyUpdate - wyBuild не является бесплатным, и, хотя спецификация wyUpdate доступна, она просто слишком сложна и занимает много времени через.
  • Обновление AppLife - То же самое последнее предложение.
  • ClickOnce. Обходные пути для запуска запуска при запуске огромны, ужасательны и не стоят такой простой функции. Публикация - боль; ручной FTP и замена всех файлов требуется для серверов без FrontPage Extensions.

Неудивительно, что ситуация в Windows такая, когда у вас действительно красивые и простые реализации для Mac OS X, например Sparkle.

4b9b3361

Ответ 1

Должен был обновиться этот веков назад, oops!

Но во всяком случае, я использовал SparkleDotNET какое-то время, и он работал совершенно чудесно. Там несколько мелких ошибок здесь и там, но я уже помог заставить некоторых из них раздавить, и, надеюсь, я тоже смогу избавиться от остальных:)

Для тех, у кого есть время для запуска функций публикации Visual Studio и чье приложение относительно автономно и не требует ничего подобного запуску при запуске, я бы рекомендовал ClickOnce точно. MetroTwit использует его, и он получил приятный интерфейс для обновления приложений, поэтому он кажется гибким (по крайней мере, в определенной степени). Для запуска при запуске это возможно, но методы для этого довольно хаки и не работают так хорошо.

Ответ 2

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

Таким образом, ваше основное приложение может проверять наличие обновлений, и если они существуют, оно будет предлагать пользователю возможность обновлять. Если пользователь захочет, он запустит программу обновления, закроет себя (так что обновление может произойти) и presto.

Единственные вещи, которые вам нужны, легко доступны в С#, FTP-доступе и IO.

Изменить: Я знаю, что это не так просто, но это отличный шанс узнать:

  • Как (правильно) загружать файлы абстрактным способом, который можно распространять на ftp, http и т.д.
  • Как (правильно) выполнить простую задачу по многим файлам - копирование или перезапись (это подразумевает обработку ошибок).
  • Практика (потому что нет "правильного" способа) для слоя и инкапсулировать часть программного обеспечения.
  • Как работать с OS/другим программным обеспечением (антивирус/брандмауэр/etc), не сотрудничая.

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

Примечание. Я знаю, что мне нужно лучше изучить файл и сетевой ввод-вывод

Ответ 3

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

Ответ 4

Вы даже не можете разработать внешнее приложение, но реализовать его как свой прикладной модуль, например. в namespace Update и использовать динамический сборщик компоновки для генерации exe, запустить его и выйти из основного приложения, запустить его снова, когда обновление будет завершено.

Еще несколько информация.

Ответ 5

Существует также обновление DDay, которое является открытым исходным кодом и используется одним из моих клиентов. Мы/они в первую очередь заинтересованы в этом в контексте службы Windows при этом для этого хорошо работают.

Ответ 6

все ребята правы, особенно смотрят на абатищева reply.but, я думаю, что-то еще нужно, чтобы парень забыл об этом. попробуйте разработать свой проект "модульный". Имейте их свой код в библиотеке классов, как вы можете. Во время операции исправления замените один из них. Подумайте о сбое базы данных. Иногда вам нужно добавить столбец в таблицу базы данных. вы делаете для этих случаев?

a разработали проект update.in, у меня есть три вида исправлений. 1- ОШИБКА в работе программы и необходимо заменить файл DDL 2- Ошибка в программе и необходимо обновить текущий исполняемый файл программы 3- ошибка или изменить базу данных и выполнить запрос сервера sql

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

удачи чувак