Workaround for Settings.Upgrade with Squirrel

This commit is contained in:
2018-02-22 14:08:34 -05:00
parent c865cc0d1c
commit 359ff583db
4 changed files with 69 additions and 11 deletions

63
SettingsExtensions.cs Normal file
View File

@@ -0,0 +1,63 @@
using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Reflection;
namespace ProcessCpuUsageStatusWindow
{
public static class SettingsExtensions
{
public static void BackupSettings()
{
Debugger.Launch();
var settingsFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
var destination = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\..\last.config";
File.Copy(settingsFile, destination, true);
}
public static void RestoreSettings()
{
Debugger.Launch();
var destFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
var sourceFile = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\..\last.config";
if (!File.Exists(sourceFile))
return;
var destDirectory = Path.GetDirectoryName(destFile);
if (destDirectory == null)
return;
try
{
Directory.CreateDirectory(destDirectory);
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
try
{
File.Copy(sourceFile, destFile, true);
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
try
{
File.Delete(sourceFile);
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}
}
}