Обновления программы - QualitySolution/QSProjects GitHub Wiki
Модуль обновления позволяет проверять наличие новой версии и обновлять приложение на Windows.
Настройка модуля в новом проекте
Для работы модуля необходимо настроить Autofac, примерно как указано ниже:
#region GtkUI
builder.RegisterType<GtkGuiDispatcher>().As<IGuiDispatcher>();
#endregion
#region База
builder.Register(c => QSProjectsLib.QSMain.ConnectionStringBuilder).AsSelf();
builder.Register(c => new MySqlConnectionFactory(Connection.ConnectionString)).As<IConnectionFactory>();
builder.Register<DbConnection>(c => c.Resolve<IConnectionFactory>().OpenConnection()).AsSelf().InstancePerLifetimeScope();
builder.RegisterType<ParametersService>().AsSelf();
#endregion
#region Версии
builder.RegisterType<ApplicationVersionInfo>().As<IApplicationInfo>();
builder.RegisterModule(new UpdaterAutofacModule());
builder.Register(c => MainClass.MakeUpdateConfiguration()).AsSelf();
#endregion
В последней строке создается конфигурация обновлений базы. Пример:
public static UpdateConfiguration MakeUpdateConfiguration()
{
var configuration = new UpdateConfiguration();
configuration.AddUpdate(
new Version(2, 0),
new Version(2, 1),
"workwear.Updates.2.1.sql");
configuration.AddMicroUpdate(
new Version(2, 1),
new Version(2, 1, 1),
"workwear.Updates.2.1.1.sql");
return configuration;
}
Для вызова проверки наличия новой версии можно использовать следующий код:
var checker = new VersionCheckerService(MainClass.AppDIContainer);
checker.RunUpdate();
Его можно разместить при старте главного окна программы.