Browse Source

Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser

Luke Pulverenti 12 years ago
parent
commit
92af49d810
1 changed files with 21 additions and 5 deletions
  1. 21 5
      MediaBrowser.Installer/MainWindow.xaml.cs

+ 21 - 5
MediaBrowser.Installer/MainWindow.xaml.cs

@@ -449,8 +449,24 @@ namespace MediaBrowser.Installer
             var backupDir = Path.Combine(RootPath, "System.old");
             if (Directory.Exists(systemDir))
             {
-                if (Directory.Exists(backupDir)) Directory.Delete(backupDir,true);
-                Directory.Move(systemDir, backupDir);
+                try
+                {
+                    if (Directory.Exists(backupDir)) Directory.Delete(backupDir,true);
+
+                }
+                catch (Exception e)
+                {
+                    throw new ApplicationException("Could not delete previous backup directory.\n\n"+e.Message);
+                }
+
+                try
+                {
+                    Directory.Move(systemDir, backupDir);
+                }
+                catch (Exception e)
+                {
+                    throw new ApplicationException("Could not move system directory to backup.\n\n"+e.Message);
+                }
             }
 
             // And extract
@@ -469,7 +485,7 @@ namespace MediaBrowser.Installer
                         }
                     }
                 }
-                catch
+                catch (Exception e)
                 {
                     if (retryCount < 3)
                     {
@@ -480,8 +496,8 @@ namespace MediaBrowser.Installer
                     {
                         //Rollback
                         RollBack(systemDir, backupDir);
-                        File.Delete(archive); // so we don't try again if its an update
-                        throw;
+                        TryDelete(archive); // so we don't try again if its an update
+                        throw new ApplicationException(string.Format("Could not extract {0} to {1} after {2} attempts.\n\n{3}", archive, RootPath, retryCount, e.Message));
                     }
                 }
             }