75 lines
2.4 KiB
C#
75 lines
2.4 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Reflection;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AVS
|
|
{
|
|
class Updater
|
|
{
|
|
public string SVNversion;
|
|
public string Softwareversion;
|
|
SoftwareVersionUtility SoftwareVersionUtility = new SoftwareVersionUtility();
|
|
|
|
public async Task CheckVersionAsync()
|
|
{
|
|
// Read version from SVN
|
|
SVNversion = await SoftwareVersionUtility.CheckVersion();
|
|
|
|
// Assembly version in properties
|
|
Softwareversion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
|
|
|
// If versions are different, trigger the update
|
|
if (SVNversion != Softwareversion)
|
|
{
|
|
|
|
DialogResult dialogResult = MessageBox.Show("A new version is available. Do you want to update now?",
|
|
"Update Available", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
|
|
|
|
if (dialogResult == DialogResult.Yes)
|
|
{
|
|
// Start the update process
|
|
await StartUpdateProcessAsync();
|
|
}
|
|
else
|
|
{
|
|
// retries update if user does not want to update in 5 minutes
|
|
await Task.Delay(TimeSpan.FromSeconds(300));
|
|
await StartUpdateProcessAsync();
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public async Task StartUpdateProcessAsync()
|
|
{
|
|
try
|
|
{
|
|
string updaterPath = "C:\\Users\\Public\\Documents\\AVS\\AVSUpdater.exe";
|
|
|
|
|
|
// Start the updater process
|
|
ProcessStartInfo processStartInfo = new ProcessStartInfo
|
|
{
|
|
FileName = updaterPath,
|
|
//Arguments = $"\"{sourcePath}\" \"{destinationPath}\"",
|
|
UseShellExecute = false,
|
|
//CreateNoWindow = true,
|
|
};
|
|
|
|
Process.Start(processStartInfo);
|
|
|
|
// Close the current application
|
|
//await Task.Delay(1000); // Delay to allow the updater to initialize
|
|
|
|
Environment.Exit(0);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"Failed to start the update process: {ex.Message}", "Update Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
}
|
|
} |