This commit is contained in:
Luke Pulverenti 2013-04-12 20:43:19 -04:00
commit 6688d35e65
2 changed files with 65 additions and 40 deletions

View File

@ -241,60 +241,85 @@ namespace MediaBrowser.Installer
if (archive == null) return; //we canceled or had an error that was already reported if (archive == null) return; //we canceled or had an error that was already reported
// Extract if (Path.GetExtension(archive) == ".msi")
lblStatus.Text = "Extracting Package...";
try
{ {
ExtractPackage(archive);
// We're done with it so delete it (this is necessary for update operations) // Create directory for our installer log
try if (!Directory.Exists(RootPath)) Directory.CreateDirectory(RootPath);
{ var logPath = Path.Combine(RootPath, "Logs");
File.Delete(archive); if (!Directory.Exists(logPath)) Directory.CreateDirectory(logPath);
}
catch (FileNotFoundException) // 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) 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; return;
} }
}
catch (Exception e)
{
SystemClose("Error Extracting - " + e.GetType().FullName + "\n\n" + e.Message);
return;
}
// Create shortcut // Create shortcut
lblStatus.Text = "Creating Shortcuts..."; lblStatus.Text = "Creating Shortcuts...";
var fullPath = Path.Combine(RootPath, "System", TargetExe); 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...";
try try
{ {
PismoInstall(); CreateShortcuts(fullPath);
} }
catch (Exception e) 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 // Install Pismo
Directory.Delete(Path.Combine(RootPath, "Pismo"), true); 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 // And run
lblStatus.Text = string.Format("Starting {0}...", FriendlyName); lblStatus.Text = string.Format("Starting {0}...", FriendlyName);

View File

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