Exemplo n.º 1
0
    /// <summary>
    /// Download CEF runtime files.
    /// </summary>
    /// <exception cref="Exception"></exception>
    public static void Download(ChromelyPlatform platform)
    {
        Logger.Instance.Log.LogInformation("CefLoader: Installing CEF runtime from " + CefBuildsDownloadUrl);

        var loader = new CefLoader(platform);

        try
        {
            var watch = new Stopwatch();
            watch.Start();
            loader.GetDownloadUrl();
            if (!loader.ParallelDownload())
            {
                loader.Download();
            }
            Logger.Instance.Log.LogInformation("CefLoader: Download took {watch.ElapsedMilliseconds}ms", watch.ElapsedMilliseconds);
            watch.Restart();
            loader.DecompressArchive();
            Logger.Instance.Log.LogInformation("CefLoader: Decompressing archive took {watch.ElapsedMilliseconds}ms", watch.ElapsedMilliseconds);
            watch.Restart();
            loader.CopyFilesToAppDirectory();
            Logger.Instance.Log.LogInformation("CefLoader: Copying files took {watch.ElapsedMilliseconds}ms", watch.ElapsedMilliseconds);
        }
        catch (Exception ex)
        {
            Logger.Instance.Log.LogError("CefLoader: {ex.Message}", ex.Message);
            throw;
        }
        finally
        {
            if (!string.IsNullOrEmpty(loader._tempBz2File))
            {
                File.Delete(loader._tempBz2File);
            }

            if (!string.IsNullOrEmpty(loader._tempTarStream))
            {
                File.Delete(loader._tempTarStream);
            }

            if (!string.IsNullOrEmpty(loader._tempTarFile))
            {
                File.Delete(loader._tempTarFile);
            }
            if (!string.IsNullOrEmpty(loader._tempDirectory) && Directory.Exists(loader._tempDirectory))
            {
                Directory.Delete(loader._tempDirectory, true);
            }
        }
    }