private static void BuildPortablePackage(bool is64Bit) { using (ZipArchive zipArchive = ZipArchive.Create()) { foreach (string fileName in AppFiles.GetFileList(is64Bit)) { zipArchive.AddEntry(Path.GetFileName(fileName), Utils.GetFullFilePath(AppFiles.GetBinariesDirectoryPath(is64Bit), fileName)); } string outputFilePath = Utils.GetFullFilePath(@"..\Release", String.Format(Constants.PORTABLE_PACKAGE_FILE_NAME_FORMAT, is64Bit ? 64 : 32)); zipArchive.SaveTo(outputFilePath, CompressionType.Deflate); } }
private static void BuildSetupPackage(bool is64Bit, string projectGuid) { string productTitle = String.Format(Constants.PRODUCT_TITLE_FORMAT, is64Bit ? 64 : 32); string shortcutTitle = String.Format(Constants.SHORTCUT_TITLE_FORMAT, is64Bit ? 64 : 32); string normalizedCurrentVersion = Constants.CURRENT_VERSION.Count(c => c == '.') > 1 ? Constants.CURRENT_VERSION : Constants.CURRENT_VERSION + ".0"; string installerFileName = String.Format(Constants.INSTALLER_FILE_NAME_FORMAT, is64Bit ? 64 : 32); Project project = new Project(productTitle, new Dir(@"%ProgramFiles%\Libgen Desktop")); Dir targetDirectory = project.Dirs.First().Dirs.First(); foreach (string fileName in AppFiles.GetFileList(is64Bit)) { string filePath = Utils.GetFullFilePath(AppFiles.GetBinariesDirectoryPath(is64Bit), fileName); File file = new File(filePath); if (fileName == Constants.MAIN_EXECUTABLE_NAME) { file.Shortcuts = new[] { new FileShortcut(shortcutTitle, "%ProgramMenu%") }; } targetDirectory.AddFile(file); } project.GUID = new Guid(projectGuid); project.ControlPanelInfo.Manufacturer = Constants.PRODUCT_COMPANY; project.ControlPanelInfo.ProductIcon = Constants.APP_ICON_PATH; project.Version = new Version(Constants.CURRENT_VERSION); project.MajorUpgradeStrategy = new MajorUpgradeStrategy { UpgradeVersions = new VersionRange { Minimum = "0.0.0", Maximum = normalizedCurrentVersion, IncludeMinimum = true, IncludeMaximum = false }, PreventDowngradingVersions = new VersionRange { Minimum = normalizedCurrentVersion, IncludeMinimum = false }, NewerProductInstalledErrorMessage = "Newer version is already installed." }; project.SetNetFxPrerequisite("WIX_IS_NETFRAMEWORK_45_OR_LATER_INSTALLED", ".NET Framework 4.5 or newer must be installed first. You can download it at http://dot.net."); project.Platform = is64Bit ? Platform.x64 : Platform.x86; project.InstallScope = InstallScope.perMachine; project.UI = WUI.WixUI_InstallDir; project.CustomUI = new DialogSequence() .On(NativeDialogs.WelcomeDlg, Buttons.Next, new ShowDialog(NativeDialogs.InstallDirDlg)) .On(NativeDialogs.InstallDirDlg, Buttons.Back, new ShowDialog(NativeDialogs.WelcomeDlg)); project.BuildMsi(installerFileName); Utils.MoveFile($"{installerFileName}.msi", @"..\Release"); }