using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.IO;
using System.Threading;
using System.Windows.Threading;
namespace WPFTestUpdate
{
///
/// MainWindow.xaml 的交互逻辑
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
string exeBasePath = txtBasePath.Text;
var dirList = new List();
#region 获取需要打包的文件夹列表
string dirstr = txtDirs.Text;
var dirstrs = dirstr.Split(';');
foreach (string s in dirstrs)
{
if (!string.IsNullOrEmpty(s))
{
dirList.Add(Path.Combine(exeBasePath, s));
}
}
if (!dirList.Any())
{
RefrushState("打包文件夹不能为空,请检查");
return;
}
#endregion
Thread thread = new Thread(
() =>
{
RefrushState("准备");
string exePath =Path.Combine(exeBasePath,@"OutputDll\SAGA.MBI.exe");
if (!File.Exists(exePath))
{
RefrushState("可执行的Exe文件不存在,请检查");
return;
}
//string version;
var canUpload = Untility.CheckVision(exePath, out string version);
this.Dispatcher.Invoke(() =>
txtVersion.Text = version
);
if (!canUpload)
{
RefrushState("请检查本地版本号!安装包不需要重新上传。");
return;
}
try
{
string package = $"{Const.Key}";
string compressName =Untility.GetFileVersion(exePath).ToString().ToCompressKey();
RefrushState("正在进行压缩");
string compressPath = @"C:\VersionsTest";
string compressFullPath = Path.Combine(compressPath, compressName);
Untility.CompressDir(compressFullPath, dirList.ToArray(), RefrushState);
RefrushState("删除旧的安装包");
Untility.DeleteCompress();
RefrushState("正在进行上传");
Untility.UploadCompress(compressFullPath,RefrushState);
Untility.SaveVision(package, compressName);
RefrushState("删除压缩");
File.Delete(compressFullPath);
}
catch (Exception exception)
{
MessageBox.Show("上传出错了");
}
RefrushState("上传成功");
//MessageBox.Show("上传成功");
});
thread.Start();
}
private void BtnReset_OnClick(object sender, RoutedEventArgs e)
{
Untility.DeleteCompress();
string package = $"{Const.Key}";
string compressName = textbox.Text.ToCompressKey();
Untility.SaveVision(package, compressName);
MessageBox.Show("设置成功");
}
private void RefrushState(string str)
{
this.Dispatcher.Invoke(() => { txtDiscription.Text = str ; }, DispatcherPriority.Send);
}
}
}