/// <inheritdoc /> public void CreateDesktopShortcut() { string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Artemis.lnk"); ShortcutUtilities.Create(path, Path.Combine(InstallationDirectory, "Artemis.UI.exe"), "", InstallationDirectory, "Artemis", "", ""); }
public async Task InstallBinaries(string file, IDownloadable downloadable) { CleanUpOnShutdown = false; GeneralUtilities.CreateAccessibleDirectory(DataDirectory); GeneralUtilities.CreateAccessibleDirectory(InstallationDirectory); using (FileStream fileStream = new FileStream(file, FileMode.Open)) { ZipArchive archive = new ZipArchive(fileStream); float count = 0; foreach (ZipArchiveEntry entry in archive.Entries) { using (Stream unzippedEntryStream = entry.Open()) { downloadable.ReportProgress(0, 0, count / archive.Entries.Count * 100f); if (entry.Length > 0) { string path = Path.Combine(InstallationDirectory, entry.FullName); CreateDirectoryForFile(path); using (Stream extractStream = new FileStream(path, FileMode.OpenOrCreate)) { await unzippedEntryStream.CopyToAsync(extractStream); } } } count++; } } downloadable.ReportProgress(0, 0, 100); // Copy installer string source = Assembly.GetEntryAssembly().Location; string target = Path.Combine(DataDirectory, "installer", "Artemis.Installer.exe"); if (source != target) { CreateDirectoryForFile(target); File.Copy(source, target, true); } // Populate the start menu if (!Directory.Exists(_artemisStartMenuDirectory)) { Directory.CreateDirectory(_artemisStartMenuDirectory); } ShortcutUtilities.Create( Path.Combine(_artemisStartMenuDirectory, "Artemis.lnk"), Path.Combine(InstallationDirectory, "Artemis.UI.exe"), "", InstallationDirectory, "Artemis", "", "" ); ShortcutUtilities.Create( Path.Combine(_artemisStartMenuDirectory, "Uninstall Artemis.lnk"), Path.Combine(DataDirectory, "installer", "Artemis.Installer.exe"), "-uninstall", InstallationDirectory, "Uninstall Artemis", "", "" ); }