Как обновить программу и структуру базы данных с нескольких серверов - PullRequest
0 голосов
/ 27 мая 2011

Я занимаюсь разработкой приложения в .NET (C # и VB.NET) (Framework 4.0), которое будет использовать базу данных MySQL (локально или удаленно).

Я делаю установку с InnoSetup , такой формы, что:

  • Я загружаю установщик архива, созданный InnoSetup (архив .EXE).
  • Я запускаю архив и проверяю, существует ли Framework 4.0. Если он не существует, скрипт загружает архив для его установки.
  • После установки Framework 4.0 я загружаю с собственного сервера установщик MySQL.
  • Я устанавливаю свою программу.

При первом запуске программы я устанавливаю базу данных и вводю необходимые данные с помощью сценария SQL.

У меня проблемы с обновлениями, потому что мне нужно:

  • Наличие нескольких маршрутов для загрузки обновлений (несколько URL-адресов с серверами Linux / Apache) для баланса и доступности.
  • Обновление архивов программы (.exe, .dll, images, ...) и новых полей базы данных (предложения ALTER TABLE и некоторые INSERT).

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

Для обновления базы данных я нашел только одно решение: Autodbupdater .

Спасибо

1 Ответ

1 голос
/ 31 мая 2011

NAppUpdate - решение с открытым исходным кодом, которое я написал для удовлетворения конкретных потребностей, которые у нас были для приложений WinForms и WPF.Общая идея заключается в том, чтобы иметь наибольшую гибкость при минимально возможных накладных расходах.Я думаю, что он обеспечивает именно ту гибкость, которая вам нужна:

Он позволяет вам определять, какие задачи выполнять и на каких условиях - вы устанавливаете правила.Существует поддержка любого источника обновлений (веб, BitTorrent и т. Д.), А также любого формата фида - все, что не реализовано, вы можете просто написать для себя.

Обычно все, что вам нужно сделать, это добавить NAppUpdateв свой проект (одну небольшую DLL), внедрите свой собственный IUpdateSource (чтобы можно было загружать из нескольких источников), используйте существующий FileUpdateTask и примените собственный DbUpdateTask для обновления БД.

Холодные обновления (требуется приложениеподдерживаются и выполняются автоматически для файловых операций, если для задачи не указана «горячая замена».

Некоторые дополнительные сведения см. на http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/ или в списке рассылки на * 1012.*

Код:

http://github.com/synhershko/NAppUpdate (Лицензировано по лицензии Apache 2.0)

...