diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-15 11:10:28 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-15 11:10:28 -0400 |
| commit | 3d9b862430f042af1bcb9a7cdffd446ed09f9ef9 (patch) | |
| tree | 6db03e4fc97f3dd05f214fefa660e4c37807dfde | |
| parent | 30d6e2cd6ce0702faaec73b7ffb59d9844fb6967 (diff) | |
| parent | ae307f1c7d6e31d9813db3858dc912aff5b201d0 (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
| -rw-r--r-- | MediaBrowser.Installer/MainWindow.xaml.cs | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index d037924a0..6e4ad1258 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/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)); } } |
