Example #1
0
        /// <summary>
        /// Download zip from GitHub, and extract it
        /// </summary>
        /// <param name="zipFileName"></param>
        /// <param name="outputDir"></param>
        /// <returns></returns>
        public override async Task <CoreUpdaterInfo> PrepareForUpdatesAsync(string outputDir, string zipFileName)
        {
            var tag = await GetLatestReleaseTagAsync();

            var jsonUrl = GetAssetUrl(tag, CoreUpdaterInfoFileName);
            var zipUrl  = GetAssetUrl(tag, zipFileName);

            var appInfo = await CheckForUpdatesAsync(jsonUrl);

            var outputPath = $@"{outputDir}\{zipFileName}";

            await DownloadZipAsync(zipUrl, outputPath);

            Zip.ExtractEntries(outputPath, appInfo.GetNewVersionDir());

            // Delete downloaded zip file.
            File.Delete(outputPath);

            return(CoreUpdaterInfo.ReadFile($@"{appInfo.GetNewVersionDir()}\{CoreUpdaterInfoFileName}"));
        }