aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Installer/MainWindow.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Installer/MainWindow.xaml.cs')
-rw-r--r--MediaBrowser.Installer/MainWindow.xaml.cs18
1 files changed, 8 insertions, 10 deletions
diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs
index 0a30cc6a2..bb2612523 100644
--- a/MediaBrowser.Installer/MainWindow.xaml.cs
+++ b/MediaBrowser.Installer/MainWindow.xaml.cs
@@ -241,7 +241,6 @@ namespace MediaBrowser.Installer
}
catch (Exception e)
{
-
SystemClose("Error Removing Archive - " + e.GetType().FullName + "\n\n" + e.Message);
return;
}
@@ -399,17 +398,12 @@ namespace MediaBrowser.Installer
protected void ExtractPackage(string archive)
{
// Delete old content of system
- var systemDir = Path.Combine(RootPath, "system");
+ var systemDir = Path.Combine(RootPath, "System");
+ var backupDir = Path.Combine(RootPath, "System.old");
if (Directory.Exists(systemDir))
{
- try
- {
- Directory.Delete(systemDir, true);
- }
- catch
- {
- // we tried...
- }
+ if (Directory.Exists(backupDir)) Directory.Delete(backupDir,true);
+ Directory.Move(systemDir, backupDir);
}
// And extract
@@ -437,6 +431,10 @@ namespace MediaBrowser.Installer
}
else
{
+ //Rollback
+ if (Directory.Exists(systemDir)) Directory.Delete(systemDir);
+ Directory.Move(backupDir, systemDir);
+ File.Delete(archive); // so we don't try again if its an update
throw;
}
}