From d03081cec3c593a725fa3ab5852daabf8b6b2ccf Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Sat, 6 Apr 2013 12:10:36 -0400 Subject: [PATCH 1/2] Bypass program shutdown if we were called from that program. --- MediaBrowser.Installer/MainWindow.xaml.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index 272ebbfad..a7f6f5b34 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/MediaBrowser.Installer/MainWindow.xaml.cs @@ -31,6 +31,8 @@ namespace MediaBrowser.Installer protected bool InstallPismo = true; protected string RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser-Server"); + protected bool IsUpdate = false; + protected bool SystemClosing = false; protected string TempLocation = Path.Combine(Path.GetTempPath(), "MediaBrowser"); @@ -119,7 +121,7 @@ namespace MediaBrowser.Installer // wasn't running } - Thread.Sleep(500); // give it just another sec to be sure its really gone + IsUpdate = true; } //MessageBox.Show(string.Format("Called with args: product: {0} archive: {1} caller: {2}", product, Archive, callerId)); @@ -160,7 +162,7 @@ namespace MediaBrowser.Installer // Now try and shut down the server if that is what we are installing and it is running var procs = Process.GetProcessesByName("mediabrowser.serverapplication"); var server = procs.Length > 0 ? procs[0] : null; - if (PackageName == "MBServer" && server != null) + if (!IsUpdate && PackageName == "MBServer" && server != null) { lblStatus.Text = "Shutting Down Media Browser Server..."; using (var client = new WebClient()) @@ -187,7 +189,7 @@ namespace MediaBrowser.Installer } else { - if (PackageName == "MBTheater") + if (!IsUpdate && PackageName == "MBTheater") { // Uninstalling MBT - shut it down if it is running var processes = Process.GetProcessesByName("mediabrowser.ui"); From d05f4d71d2c250d9c9df23aa1e4a1294e1d76a8a Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Sat, 6 Apr 2013 12:40:04 -0400 Subject: [PATCH 2/2] Attempt to create Uninstall reg key if not there --- MediaBrowser.Installer/MainWindow.xaml.cs | 19 ++++++++++++++----- .../MediaBrowser.Installer.csproj | 2 +- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/MediaBrowser.Installer/MainWindow.xaml.cs b/MediaBrowser.Installer/MainWindow.xaml.cs index a7f6f5b34..0a30cc6a2 100644 --- a/MediaBrowser.Installer/MainWindow.xaml.cs +++ b/MediaBrowser.Installer/MainWindow.xaml.cs @@ -475,13 +475,22 @@ namespace MediaBrowser.Installer /// private void CreateUninstaller(string uninstallPath, string targetExe) { - using (var parent = Registry.CurrentUser.OpenSubKey( - @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", true)) + var parent = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", true); { if (parent == null) { - MessageBox.Show("Uninstall registry key not found."); - return; + var rootParent = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion", true); + { + if (rootParent != null) + { + parent = rootParent.CreateSubKey("Uninstall"); + if (parent == null) + { + MessageBox.Show("Unable to create Uninstall registry key. Program is still installed sucessfully."); + return; + } + } + } } try { @@ -495,7 +504,7 @@ namespace MediaBrowser.Installer if (key == null) { - MessageBox.Show(String.Format("Unable to create uninstaller entry'{0}\\{1}'", @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", guidText)); + MessageBox.Show(String.Format("Unable to create uninstaller entry'{0}\\{1}'. Program is still installed successfully.", @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", guidText)); return; } diff --git a/MediaBrowser.Installer/MediaBrowser.Installer.csproj b/MediaBrowser.Installer/MediaBrowser.Installer.csproj index eccada0f5..8683833ab 100644 --- a/MediaBrowser.Installer/MediaBrowser.Installer.csproj +++ b/MediaBrowser.Installer/MediaBrowser.Installer.csproj @@ -31,7 +31,7 @@ Media Browser Team Media Browser false - 55 + 57 0.1.1.%2a false true