From 9553c8b14ce9345a8ef8c397301bfc74fdb50251 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Sun, 14 Apr 2013 10:44:34 -0400 Subject: Delete archive even on failure so we won't re-try the same update --- MediaBrowser.Installer/MainWindow.xaml.cs | 32 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'MediaBrowser.Installer/MainWindow.xaml.cs') diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index ee87e9bf2..a3becf631 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/MediaBrowser.Installer/MainWindow.xaml.cs @@ -269,22 +269,13 @@ namespace MediaBrowser.Installer { ExtractPackage(archive); // We're done with it so delete it (this is necessary for update operations) - try - { - File.Delete(archive); - } - catch (FileNotFoundException) - { - } - catch (Exception e) - { - SystemClose("Error Removing Archive - " + e.GetType().FullName + "\n\n" + e.Message); - return; - } + TryDelete(archive); } catch (Exception e) { SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message); + // Delete archive even if failed so we don't try again with this one + TryDelete(archive); return; } @@ -337,6 +328,23 @@ namespace MediaBrowser.Installer } + private bool TryDelete(string file) + { + try + { + File.Delete(file); + } + catch (FileNotFoundException) + { + } + catch (Exception e) + { + return false; + } + + return true; + } + private void PismoInstall() { // Kick off the Pismo installer and wait for it to end -- cgit v1.2.3 From 078e813d253d986f3290c198c39a1efb7a0cfbd3 Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Sun, 14 Apr 2013 11:41:27 -0400 Subject: Better error messages on extract failures --- MediaBrowser.Installer/MainWindow.xaml.cs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'MediaBrowser.Installer/MainWindow.xaml.cs') diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index a3becf631..16cde9592 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/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)); } } } -- cgit v1.2.3