MainWindow.xaml.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Windows;
  8. using System.Windows.Controls;
  9. using System.Windows.Data;
  10. using System.Windows.Documents;
  11. using System.Windows.Input;
  12. using System.Windows.Media;
  13. using System.Windows.Media.Imaging;
  14. using System.Windows.Navigation;
  15. using System.Windows.Threading;
  16. using Microsoft.Win32;
  17. using Path = System.Windows.Shapes.Path;
  18. namespace InstallerMaker
  19. {
  20. /// <summary>
  21. /// Interaction logic for MainWindow.xaml
  22. /// </summary>
  23. public partial class MainWindow : Window
  24. {
  25. public MainWindow()
  26. {
  27. InitializeComponent();
  28. ParamDesc.Text =
  29. "Launcher: The launcher is the main setup file which can extract the installation files into the target folder. If embedded launcher is used, it will use the default launcher." +
  30. Environment.NewLine +
  31. "Install source: The install source is a zip file which is used for the launcher.";
  32. }
  33. private void OnMakeClick(object sender, RoutedEventArgs e)
  34. {
  35. if (UseDefaultLauncher.IsChecked == false && string.IsNullOrEmpty(LauncherPath.Text))
  36. {
  37. MessageBox.Show("The file path of launcher is empty.", "Installer Maker", MessageBoxButton.OK,
  38. MessageBoxImage.Error);
  39. return;
  40. }
  41. if (string.IsNullOrEmpty(PackagePath.Text))
  42. {
  43. MessageBox.Show("The file path of install source is empty.", "Installer Maker", MessageBoxButton.OK,
  44. MessageBoxImage.Error);
  45. return;
  46. }
  47. if (UseDefaultLauncher.IsChecked == false && !File.Exists(LauncherPath.Text))
  48. {
  49. MessageBox.Show("The launcher doesn't exist.", "Installer Maker", MessageBoxButton.OK,
  50. MessageBoxImage.Error);
  51. return;
  52. }
  53. if (!File.Exists(PackagePath.Text))
  54. {
  55. MessageBox.Show("The install source doesn't exist.", "Installer Maker", MessageBoxButton.OK,
  56. MessageBoxImage.Error);
  57. return;
  58. }
  59. if (UseDefaultLauncher.IsChecked == true && !Version.TryParse(LauncherVersion.Text, out _))
  60. {
  61. MessageBox.Show("Version format is not right.", "Installer Maker", MessageBoxButton.OK,
  62. MessageBoxImage.Error);
  63. return;
  64. }
  65. var sfd = new SaveFileDialog {Filter = "*.exe|*.exe"};
  66. if (sfd.ShowDialog() == true)
  67. {
  68. if (File.Exists(sfd.FileName))
  69. {
  70. try
  71. {
  72. File.Delete(sfd.FileName);
  73. }
  74. catch
  75. {
  76. MessageBox.Show("Can not delete the existing file.", "Installer Maker", MessageBoxButton.OK,
  77. MessageBoxImage.Error);
  78. return;
  79. }
  80. }
  81. if (UseDefaultLauncher.IsChecked == false)
  82. {
  83. var isUpgrade = IsUpgrade.IsChecked == true;
  84. var minSupportedVersion = MinSupportedVersion.Text;
  85. File.Copy(LauncherPath.Text, sfd.FileName);
  86. MakeHelper.Make(sfd.FileName, PackagePath.Text, false,"1.0.0.0", isUpgrade, minSupportedVersion);
  87. }
  88. else
  89. {
  90. var isUpgrade = IsUpgrade.IsChecked == true;
  91. var minSupportedVersion = MinSupportedVersion.Text;
  92. MakeHelper.Make(sfd.FileName, PackagePath.Text, true, LauncherVersion.Text, isUpgrade, minSupportedVersion);
  93. }
  94. MessageBox.Show("Installer create success.", "Installer Maker", MessageBoxButton.OK,
  95. MessageBoxImage.Information);
  96. }
  97. }
  98. private void OnInstallSourceClick(object sender, RoutedEventArgs e)
  99. {
  100. var ofd = new OpenFileDialog
  101. {
  102. Filter = "*.zip|*.zip",
  103. };
  104. if (ofd.ShowDialog() == true)
  105. {
  106. PackagePath.Text = ofd.FileName;
  107. }
  108. }
  109. private void OnLauncherClick(object sender, RoutedEventArgs e)
  110. {
  111. var ofd = new OpenFileDialog
  112. {
  113. Filter = "*.exe|*.exe",
  114. };
  115. if (ofd.ShowDialog() == true)
  116. {
  117. LauncherPath.Text = ofd.FileName;
  118. }
  119. }
  120. private void UseDefaultLauncherOnChecked(object sender, RoutedEventArgs e)
  121. {
  122. LauncherPath.Visibility = Visibility.Collapsed;
  123. SelectLauncher.Visibility = Visibility.Collapsed;
  124. VersionLabel.Visibility = Visibility.Visible;
  125. LauncherVersion.Visibility = Visibility.Visible;
  126. }
  127. private void UseDefaultLauncherOnUnchecked(object sender, RoutedEventArgs e)
  128. {
  129. LauncherPath.Visibility = Visibility.Visible;
  130. SelectLauncher.Visibility = Visibility.Visible;
  131. VersionLabel.Visibility = Visibility.Collapsed;
  132. LauncherVersion.Visibility = Visibility.Collapsed;
  133. }
  134. private void IsUpgradeOnChecked(object sender, RoutedEventArgs e)
  135. {
  136. MinSupportedVersion.IsEnabled = true;
  137. MinSupportedVersionStr.IsEnabled = true;
  138. }
  139. private void IsUpgradeOnUnchecked(object sender, RoutedEventArgs e)
  140. {
  141. MinSupportedVersion.IsEnabled = false;
  142. MinSupportedVersionStr.IsEnabled = false;
  143. }
  144. }
  145. }