diff --git a/CrazyCoder/App.xaml.cs b/CrazyCoder/App.xaml.cs
index b2c372f..a7f6fb8 100644
--- a/CrazyCoder/App.xaml.cs
+++ b/CrazyCoder/App.xaml.cs
@@ -94,15 +94,15 @@ namespace CrazyCoder
var ur = client.Upgrade(channel).Result;
if (ur != null)
{
- var rs = client.ProcessUpgrade(ur);
-
- // 强制更新时,马上重启
- if (rs && ur.Force)
- {
- var p = Process.GetCurrentProcess();
- p.Close();
- p.Kill();
- }
+ //var rs = client.ProcessUpgrade(ur);
+
+ //// 强制更新时,马上重启
+ //if (rs && ur.Force)
+ //{
+ // var p = Process.GetCurrentProcess();
+ // p.Close();
+ // p.Kill();
+ //}
}
}
}
diff --git a/CrazyCoder/CrazyCoder.csproj b/CrazyCoder/CrazyCoder.csproj
index 94c3b36..232f54d 100644
--- a/CrazyCoder/CrazyCoder.csproj
+++ b/CrazyCoder/CrazyCoder.csproj
@@ -111,19 +111,19 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="MaterialDesignThemes">
- <Version>4.2.1</Version>
+ <Version>4.3.0</Version>
</PackageReference>
<PackageReference Include="MvvmLightLibs">
<Version>5.4.1.1</Version>
</PackageReference>
<PackageReference Include="NewLife.Core">
- <Version>8.11.2021.1017-beta1</Version>
+ <Version>8.11.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.Stardust">
- <Version>1.5.2021.926-Beta1</Version>
+ <Version>1.5.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.XCode">
- <Version>10.3.2021.1017-beta1</Version>
+ <Version>10.3.2021.1204</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
diff --git a/XCoder/Program.cs b/XCoder/Program.cs
index 769ff14..fdc34ad 100644
--- a/XCoder/Program.cs
+++ b/XCoder/Program.cs
@@ -10,6 +10,7 @@ using NewLife.Net;
using NewLife.Threading;
using NewLife.Xml;
using XCode.DataAccessLayer;
+using System.Threading.Tasks;
#if !NET4
using Stardust;
#endif
@@ -84,12 +85,12 @@ namespace XCoder
_Client = client;
}
- private static void TryConnectServer(Object state)
+ private static async Task TryConnectServer(Object state)
{
var client = state as StarClient;
var set = XConfig.Current;
- client.Login().Wait();
- CheckUpgrade(client, set.Channel);
+ await client.Login();
+ await CheckUpgrade(client, set.Channel);
// 登录成功,销毁定时器
//TimerX.Current.Period = 0;
@@ -97,28 +98,44 @@ namespace XCoder
_timer = null;
}
- private static void CheckUpgrade(StarClient client, String channel)
+ private static String _lastVersion;
+ private static async Task CheckUpgrade(StarClient client, String channel)
{
+ var ug = new Stardust.Web.Upgrade { Log = XTrace.Log };
+
// 检查更新
- var ur = client.Upgrade(channel).Result;
- if (ur != null)
+ var ur = await client.Upgrade(channel);
+ if (ur != null && ur.Version != _lastVersion)
{
- var rs = client.ProcessUpgrade(ur);
+ ug.Url = ur.Source;
+ await ug.Download();
- // 强制更新时,马上重启
- if (rs && ur.Force)
+ // 检查文件完整性
+ if (ur.FileHash.IsNullOrEmpty() || ug.CheckFileHash(ur.FileHash))
{
- //StopWork("Upgrade");
-
- // 重新拉起进程
- var star = "XCoder.exe";
- XTrace.WriteLine("强制升级,拉起进程 {0} -upgrade", star.GetFullPath());
- Process.Start(star.GetFullPath(), "-upgrade");
-
- //var p = Process.GetCurrentProcess();
- //p.Close();
- //p.Kill();
- Application.Exit();
+ // 执行更新,解压缩覆盖文件
+ var rs = ug.Update();
+ if (rs && !ur.Executor.IsNullOrEmpty()) ug.Run(ur.Executor);
+ _lastVersion = ur.Version;
+
+ // 去除多余入口文件
+ ug.Trim("StarAgent");
+
+ // 强制更新时,马上重启
+ if (rs && ur.Force)
+ {
+ //StopWork("Upgrade");
+
+ // 重新拉起进程
+ var star = "XCoder.exe";
+ XTrace.WriteLine("强制升级,拉起进程 {0} -upgrade", star.GetFullPath());
+ Process.Start(star.GetFullPath(), "-upgrade");
+
+ //var p = Process.GetCurrentProcess();
+ //p.Close();
+ //p.Kill();
+ Application.Exit();
+ }
}
}
}
diff --git a/XCoder/XCoder.csproj b/XCoder/XCoder.csproj
index 57b6ff0..18c9164 100644
--- a/XCoder/XCoder.csproj
+++ b/XCoder/XCoder.csproj
@@ -376,22 +376,22 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Core">
- <Version>8.11.2021.1017-beta1</Version>
+ <Version>8.11.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.MQTT">
- <Version>1.0.2021.1001</Version>
+ <Version>1.0.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.Net">
- <Version>3.6.2020.1002</Version>
+ <Version>3.6.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.Redis">
- <Version>3.9.2021.1001</Version>
+ <Version>3.9.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.Stardust">
- <Version>1.5.2021.1001</Version>
+ <Version>1.5.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.XCode">
- <Version>10.3.2021.1017-beta1</Version>
+ <Version>10.3.2021.1204</Version>
</PackageReference>
<PackageReference Include="SSH.NET">
<Version>2020.0.1</Version>
diff --git a/XCoder40/XCoder40.csproj b/XCoder40/XCoder40.csproj
index cb50024..692e472 100644
--- a/XCoder40/XCoder40.csproj
+++ b/XCoder40/XCoder40.csproj
@@ -391,13 +391,13 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Core">
- <Version>8.11.2021.1017-beta1</Version>
+ <Version>8.11.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.Net">
- <Version>3.6.2020.1002</Version>
+ <Version>3.6.2021.1204</Version>
</PackageReference>
<PackageReference Include="NewLife.XCode">
- <Version>10.3.2021.1017-beta1</Version>
+ <Version>10.3.2021.1204</Version>
</PackageReference>
<PackageReference Include="SSH.NET">
<Version>2020.0.1</Version>
diff --git a/XCoderLinux/XCoderLinux.csproj b/XCoderLinux/XCoderLinux.csproj
index 088d63f..3815414 100644
--- a/XCoderLinux/XCoderLinux.csproj
+++ b/XCoderLinux/XCoderLinux.csproj
@@ -48,10 +48,10 @@
<ItemGroup>
<PackageReference Include="GtkSharp" Version="3.24.24.34" />
- <PackageReference Include="NewLife.Core" Version="8.11.2021.1017-beta1" />
- <PackageReference Include="NewLife.XCode" Version="10.3.2021.1017-beta1" />
- <PackageReference Include="System.IO.Ports" Version="5.0.1" />
- <PackageReference Include="System.Management" Version="5.0.0" />
+ <PackageReference Include="NewLife.Core" Version="8.11.2021.1204" />
+ <PackageReference Include="NewLife.XCode" Version="10.3.2021.1204" />
+ <PackageReference Include="System.IO.Ports" Version="6.0.0" />
+ <PackageReference Include="System.Management" Version="6.0.0" />
</ItemGroup>
<ItemGroup>