|
@@ -259,9 +259,6 @@ namespace MediaBrowser.ServerApplication
|
|
|
task = InstallVcredist2013IfNeeded(_appHost, _logger);
|
|
|
Task.WaitAll(task);
|
|
|
|
|
|
- task = InstallFrameworkV46IfNeeded(_logger);
|
|
|
- Task.WaitAll(task);
|
|
|
-
|
|
|
SystemEvents.SessionEnding += SystemEvents_SessionEnding;
|
|
|
SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
|
|
|
|
|
@@ -594,93 +591,6 @@ namespace MediaBrowser.ServerApplication
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private static async Task InstallFrameworkV46IfNeeded(ILogger logger)
|
|
|
- {
|
|
|
- bool installFrameworkV46 = false;
|
|
|
-
|
|
|
- try
|
|
|
- {
|
|
|
- using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
|
|
|
- .OpenSubKey("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full\\"))
|
|
|
- {
|
|
|
- if (ndpKey != null && ndpKey.GetValue("Release") != null)
|
|
|
- {
|
|
|
- if ((int)ndpKey.GetValue("Release") <= 393295)
|
|
|
- {
|
|
|
- //Found framework V4, but not yet V4.6
|
|
|
- installFrameworkV46 = true;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //Nothing found in the registry for V4
|
|
|
- installFrameworkV46 = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- logger.ErrorException("Error getting .NET Framework version", ex);
|
|
|
- }
|
|
|
-
|
|
|
- _logger.Info(".NET Framework 4.6 found: {0}", !installFrameworkV46);
|
|
|
-
|
|
|
- if (installFrameworkV46)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- await InstallFrameworkV46().ConfigureAwait(false);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- logger.ErrorException("Error installing .NET Framework version 4.6", ex);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private static async Task InstallFrameworkV46()
|
|
|
- {
|
|
|
- var httpClient = _appHost.HttpClient;
|
|
|
-
|
|
|
- var tmp = await httpClient.GetTempFile(new HttpRequestOptions
|
|
|
- {
|
|
|
- Url = "https://github.com/MediaBrowser/Emby.Resources/raw/master/netframeworkV46/NDP46-KB3045560-Web.exe",
|
|
|
- Progress = new Progress<double>()
|
|
|
-
|
|
|
- }).ConfigureAwait(false);
|
|
|
-
|
|
|
- var exePath = Path.ChangeExtension(tmp, ".exe");
|
|
|
- File.Copy(tmp, exePath);
|
|
|
-
|
|
|
- var startInfo = new ProcessStartInfo
|
|
|
- {
|
|
|
- FileName = exePath,
|
|
|
-
|
|
|
- CreateNoWindow = true,
|
|
|
- WindowStyle = ProcessWindowStyle.Hidden,
|
|
|
- Verb = "runas",
|
|
|
- ErrorDialog = false,
|
|
|
- Arguments = "/q /norestart"
|
|
|
- };
|
|
|
-
|
|
|
-
|
|
|
- _logger.Info("Running {0}", startInfo.FileName);
|
|
|
-
|
|
|
- using (var process = Process.Start(startInfo))
|
|
|
- {
|
|
|
- process.WaitForExit();
|
|
|
- //process.ExitCode
|
|
|
- /*
|
|
|
- 0 --> Installation completed successfully.
|
|
|
- 1602 --> The user canceled installation.
|
|
|
- 1603 --> A fatal error occurred during installation.
|
|
|
- 1641 --> A restart is required to complete the installation. This message indicates success.
|
|
|
- 3010 --> A restart is required to complete the installation. This message indicates success.
|
|
|
- 5100 --> The user's computer does not meet system requirements.
|
|
|
- */
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private static async Task InstallVcredist2013IfNeeded(ApplicationHost appHost, ILogger logger)
|
|
|
{
|
|
|
try
|