Обновления программы - 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();

Его можно разместить при старте главного окна программы.