Explorar el Código

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

Luke Pulverenti hace 12 años
padre
commit
6688d35e65

+ 64 - 39
MediaBrowser.Installer/MainWindow.xaml.cs

@@ -241,60 +241,85 @@ namespace MediaBrowser.Installer
 
             if (archive == null) return;  //we canceled or had an error that was already reported
 
-            // Extract
-            lblStatus.Text = "Extracting Package...";
-            try 
+            if (Path.GetExtension(archive) == ".msi")
             {
-                ExtractPackage(archive);
-                // We're done with it so delete it (this is necessary for update operations)
-                try
-                {
-                    File.Delete(archive);
-                }
-                catch (FileNotFoundException)
+
+                // Create directory for our installer log
+                if (!Directory.Exists(RootPath)) Directory.CreateDirectory(RootPath);
+                var logPath = Path.Combine(RootPath, "Logs");
+                if (!Directory.Exists(logPath)) Directory.CreateDirectory(logPath);
+
+                // Run in silent mode and wait for it to finish
+                // First uninstall any previous version
+                lblStatus.Text = "Uninstalling any previous version...";
+                var logfile = Path.Combine(RootPath, "logs", "UnInstall.log");
+                var uninstaller = Process.Start("msiexec", "/x \"" + archive + "\" /quiet /le \"" + logfile + "\"");
+                if (uninstaller != null) uninstaller.WaitForExit();
+                // And now installer
+                lblStatus.Text = "Installing " + FriendlyName;
+                logfile = Path.Combine(RootPath, "logs", "Install.log");
+                var installer = Process.Start(archive, "/quiet /le \""+logfile+"\"");
+                installer.WaitForExit();  // let this throw if there is a problem
+            }
+            else
+            {
+                // Extract
+                lblStatus.Text = "Extracting Package...";
+                try 
                 {
+                    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;
+                    }
                 }
                 catch (Exception e)
                 {
-                    SystemClose("Error Removing Archive - " + e.GetType().FullName + "\n\n" + e.Message);
+                    SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message);
                     return;
                 }
-            }
-            catch (Exception e)
-            {
-                SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message);
-                return;
-            }
 
-            // Create shortcut
-            lblStatus.Text = "Creating Shortcuts...";
-            var fullPath = Path.Combine(RootPath, "System", TargetExe);
-            try
-            {
-                CreateShortcuts(fullPath);
-            }
-            catch (Exception e)
-            {
-                SystemClose("Error Creating Shortcut - "+e.GetType().FullName+"\n\n"+e.Message);
-                return;
-            }
-
-            // Install Pismo
-            if (InstallPismo)
-            {
-                lblStatus.Text = "Installing ISO Support...";
+                // Create shortcut
+                lblStatus.Text = "Creating Shortcuts...";
+                var fullPath = Path.Combine(RootPath, "System", TargetExe);
                 try
                 {
-                    PismoInstall();
+                    CreateShortcuts(fullPath);
                 }
                 catch (Exception e)
                 {
-                    SystemClose("Error Installing ISO support - "+e.GetType().FullName+"\n\n"+e.Message);
+                    SystemClose("Error Creating Shortcut - "+e.GetType().FullName+"\n\n"+e.Message);
+                    return;
                 }
-            }
 
-            // Now delete the pismo install files
-            Directory.Delete(Path.Combine(RootPath, "Pismo"), true);
+                // Install Pismo
+                if (InstallPismo)
+                {
+                    lblStatus.Text = "Installing ISO Support...";
+                    try
+                    {
+                        PismoInstall();
+                    }
+                    catch (Exception e)
+                    {
+                        SystemClose("Error Installing ISO support - "+e.GetType().FullName+"\n\n"+e.Message);
+                    }
+                }
+
+                // Now delete the pismo install files
+                Directory.Delete(Path.Combine(RootPath, "Pismo"), true);
+
+                
+            }
 
             // And run
             lblStatus.Text = string.Format("Starting {0}...", FriendlyName);

+ 1 - 1
MediaBrowser.Installer/MediaBrowser.Installer.csproj

@@ -31,7 +31,7 @@
     <PublisherName>Media Browser Team</PublisherName>
     <SuiteName>Media Browser</SuiteName>
     <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
-    <ApplicationRevision>58</ApplicationRevision>
+    <ApplicationRevision>64</ApplicationRevision>
     <ApplicationVersion>0.1.1.%2a</ApplicationVersion>
     <UseApplicationTrust>false</UseApplicationTrust>
     <PublishWizardCompleted>true</PublishWizardCompleted>