This commit is contained in:
Luke Pulverenti 2013-04-12 14:22:51 -04:00
commit 9a94bce352

View File

@ -26,10 +26,12 @@ namespace MediaBrowser.Installer
protected string PackageName = "MBServer";
protected string RootSuffix = "-Server";
protected string TargetExe = "MediaBrowser.ServerApplication.exe";
protected string TargetArgs = "";
protected string FriendlyName = "Media Browser Server";
protected string Archive = null;
protected bool InstallPismo = true;
protected string RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser-Server");
protected string EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser-Server");
protected bool IsUpdate = false;
@ -133,6 +135,18 @@ namespace MediaBrowser.Installer
RootSuffix = "-Theater";
TargetExe = "MediaBrowser.UI.exe";
FriendlyName = "Media Browser Theater";
RootPath = EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
EndInstallPath = Path.Combine(RootPath, "system");
break;
case "mbc":
PackageName = "MBClassic";
RootSuffix = "-WMC";
TargetExe = "ehshell.exe";
TargetArgs = @"/nostartupanimation /entrypoint:{CE32C570-4BEC-4aeb-AD1D-CF47B91DE0B2}\{FC9ABCCC-36CB-47ac-8BAB-03E8EF5F6F22}";
FriendlyName = "Media Browser Classic";
RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
EndInstallPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "ehome");
break;
default:
@ -140,10 +154,11 @@ namespace MediaBrowser.Installer
RootSuffix = "-Server";
TargetExe = "MediaBrowser.ServerApplication.exe";
FriendlyName = "Media Browser Server";
RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
EndInstallPath = Path.Combine(RootPath, "system");
break;
}
RootPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MediaBrowser" + RootSuffix);
}
@ -274,8 +289,7 @@ namespace MediaBrowser.Installer
}
catch (Exception e)
{
SystemClose("Error Installing Pismo - "+e.GetType().FullName+"\n\n"+e.Message);
return;
SystemClose("Error Installing ISO support - "+e.GetType().FullName+"\n\n"+e.Message);
}
}
@ -286,11 +300,11 @@ namespace MediaBrowser.Installer
lblStatus.Text = string.Format("Starting {0}...", FriendlyName);
try
{
Process.Start(fullPath);
Process.Start(Path.Combine(EndInstallPath, TargetExe), TargetArgs);
}
catch (Exception e)
{
SystemClose("Error Executing - "+fullPath+ " "+e.GetType().FullName+"\n\n"+e.Message);
SystemClose("Error Executing - "+Path.Combine(EndInstallPath, TargetExe) + " " + TargetArgs + "\n\n" +e.GetType().FullName+"\n\n"+e.Message);
return;
}
@ -432,8 +446,7 @@ namespace MediaBrowser.Installer
else
{
//Rollback
if (Directory.Exists(systemDir)) Directory.Delete(systemDir);
Directory.Move(backupDir, systemDir);
RollBack(systemDir, backupDir);
File.Delete(archive); // so we don't try again if its an update
throw;
}
@ -441,6 +454,15 @@ namespace MediaBrowser.Installer
}
}
protected void RollBack(string systemDir, string backupDir)
{
if (Directory.Exists(backupDir))
{
if (Directory.Exists(systemDir)) Directory.Delete(systemDir);
Directory.Move(backupDir, systemDir);
}
}
/// <summary>
/// Create a shortcut in the current user's start menu
/// Only do current user to avoid need for admin elevation