2
0
Эх сурвалжийг харах

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

Luke Pulverenti 12 жил өмнө
parent
commit
3d9b862430

+ 25 - 12
MediaBrowser.Installer/MainWindow.xaml.cs

@@ -265,18 +265,32 @@ namespace MediaBrowser.Installer
             {
                 // Extract
                 lblStatus.Text = "Extracting Package...";
-                try 
-                {
-                    ExtractPackage(archive);
-                    // We're done with it so delete it (this is necessary for update operations)
-                    TryDelete(archive);
-                }
-                catch (Exception e)
+                var retryCount = 0;
+                var success = false;
+                while (!success && retryCount < 3)
                 {
-                    SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message + "\n\n" + e.StackTrace);
-                    // Delete archive even if failed so we don't try again with this one
-                    TryDelete(archive);
-                    return;
+                    try
+                    {
+                        ExtractPackage(archive);
+                        success = true;
+                        // We're done with it so delete it (this is necessary for update operations)
+                        TryDelete(archive);
+                    }
+                    catch (Exception e)
+                    {
+                        if (retryCount < 3)
+                        {
+                            retryCount++;
+                            Thread.Sleep(500);
+                        }
+                        else
+                        {
+                            // Delete archive even if failed so we don't try again with this one
+                            TryDelete(archive);
+                            SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message);
+                            return;
+                        }
+                    }
                 }
 
                 // Create shortcut
@@ -496,7 +510,6 @@ namespace MediaBrowser.Installer
                     {
                         //Rollback
                         RollBack(systemDir, backupDir);
-                        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));
                     }
                 }