#clickonce
#clickonce
Вопрос:
Я разрабатываю приложение на .NET (C # и VB.NET ) (Framework 4.0), который будет использовать базу данных MySQL (локальную или удаленную).
Я выполняю установку с помощью InnoSetup такой формы, чтобы:
- Я загружаю архивный установщик, созданный InnoSetup (archive .EXE).
- Я запускаю архив и проверяю, существует ли в нем Framework 4.0. В случае, если она не существует, скрипт загружает архив для ее установки.
- После установки Framework 4.0 я загружаю с собственного сервера установщик MySQL.
- Я устанавливаю свою программу.
При первом выполнении программы я устанавливаю базу данных и ввожу необходимые данные с помощью SQL-скрипта.
У меня проблемы с обновлениями, потому что мне нужно:
- Используйте несколько маршрутов для загрузки обновлений (несколько URL на серверах Linux / Apache) для обеспечения баланса и доступности.
- Обновите архивы программы (.exe, .dll, изображения, …) и новые поля базы данных (ИЗМЕНИТЕ предложения ТАБЛИЦЫ и некоторые ВСТАВКИ).
Я подумываю о разработке собственного средства обновления, но я не хочу его писать, если могу использовать какое-то доступное решение. Может ли кто-нибудь порекомендовать мне какое-нибудь доступное решение? Я консультировался со следующими продуктами, но я не видел, чтобы какой-либо из них поддерживал несколько URL-адресов или обновление базы данных:
Для обновления базы данных я нашел только одно решение: Autodbupdater.
Спасибо
Ответ №1:
NAppUpdate — решение с открытым исходным кодом, которое я написал для удовлетворения конкретных потребностей, которые у нас были для приложений WinForms и WPF. Общая идея заключается в том, чтобы обеспечить максимальную гибкость при минимально возможных накладных расходах. Я думаю, что это обеспечивает именно ту гибкость, которая вам нужна:
Это позволяет вам определять, какие задачи выполнять и на каких условиях — вы устанавливаете правила. Существует поддержка любого источника обновлений (Web, BitTorrent и т.д.), А также любого формата канала — все, что не реализовано, вы можете просто написать для себя.
Как правило, все, что вам нужно сделать, это добавить NAppUpdate в свой проект (одну небольшую библиотеку DLL), реализовать свой собственный IUpdateSource (чтобы иметь возможность загружать из нескольких источников), использовать существующую FileUpdateTask и выполнить свою собственную DbUpdateTask для обновления БД.
Поддерживаются холодные обновления (требующие перезапуска приложения), которые выполняются автоматически для файловых операций, если для задачи не указана «горячая замена».
Более подробная информация на http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet / или через список рассылки по адресу http://groups.google.com/group/nappupdate.
Код находится на http://github.com/synhershko/NAppUpdate (Лицензируется по лицензии Apache 2.0)