diff --git a/README.en.md b/README.en.md index d115c662f74..0cdc96cb7cf 100644 --- a/README.en.md +++ b/README.en.md @@ -42,11 +42,22 @@ English | [简体中文](./README.md) ## 🖥 Supported Operating Systems - Desktop(Only X64 and ARM64 are supported) - - Windows 10 1607+ / Windows Server, version 1909+ / Windows Server 2019 / Windows Server 2016 + - Windows 10 / Windows Server, Version 20H2 + - Windows 10 / Windows Server, Version 2004 + - Windows 10 / Windows Server, Version 1909 + - Windows 10 / Windows Server, Version 1903 + - Windows 10, Version 1809 + - Windows 10, Version 1803 + - Windows 10, Version 1709 + - Windows 10, Version 1607 - Windows 8.1 / Windows Server 2012 R2 - Windows 7 SP1 [ESU](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) - Prerequisites - KB3063858 [64 bit](https://www.microsoft.com/download/details.aspx?id=47442) / [32 bit](https://www.microsoft.com/download/details.aspx?id=47409) + - Windows Server 2019 + - Windows Server 2016 + - Windows Server 2012 R2 + - Windows Server 2012 - macOS 10.14 Mojave Or Higher - Linux Distribution - Arch Linux @@ -67,8 +78,8 @@ English | [简体中文](./README.md) ## ⛔ Unsupported Operating System - Windows 8 - [Due to Microsoft's official support for the product has ended](https://docs.microsoft.com/lifecycle/products/windows-8), so this program cannot run on this operating system, [It is recommended to upgrade to Windows 8.1](https://support.microsoft.com/windows/update-to-windows-8-1-from-windows-8-17fc54a7-a465-6b5a-c1a0-34140afd0669) -- Windows Server 2012 / 2008 R2 SP1 - - Only version 1.X is available, and version 2.X is not supported. It is recommended to upgrade to **Windows Server 2012 R2** or higher +- Windows Server 2008 R2 SP1 + - Only version 1.x is available, 2.x is not supported at first, and it is recommended to upgrade to a higher version - Windows Server / Linux version without desktop GUI ## 🌏 Roadmap @@ -78,7 +89,7 @@ Read what we [milestones](https://github.com/SteamTools-Team/SteamTools/mileston [Visual Studio 2019 Version 16.10 Or Higher](https://visualstudio.microsoft.com/vs/) Or [JetBrains Rider](https://www.jetbrains.com/rider/) Or ~~[Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/)~~ Or ~~[Visual Studio Code](https://code.visualstudio.com/)~~ - Supported Operating Systems - [Windows 10 version 2004 or higher: Home, Professional, Education, and Enterprise (LTSC and S are not supported)](https://docs.microsoft.com/en-us/visualstudio/releases/2019/system-requirements) - - [macOS 10.13 High Sierra Or Higher](https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2019-system-requirements-mac) + - [macOS 10.14 Mojave Or Higher](https://docs.microsoft.com/en-us/visualstudio/productinfo/vs2019-system-requirements-mac) - Workload - Web and Cloud - ASP.NET and Web Development diff --git a/README.md b/README.md index e77bff7438e..e35a81cb9b1 100644 --- a/README.md +++ b/README.md @@ -51,11 +51,22 @@ ## 🖥 系统要求 - 桌面端(仅支持 X64 和 ARM64) - - Windows 10 1607+ / Windows Server 版本 1903+ / Windows Server 2019 / Windows Server 2016 - - Windows 8.1 / Windows Server 2012 R2 + - Windows 10/Windows Server 版本 20H2 + - Windows 10/Windows Server 版本 2004 + - Windows 10/Windows Server 版本 1909 + - Windows 10/Windows Server 版本 1903 + - Windows 10 版本 1809 + - Windows 10 版本 1803 + - Windows 10 版本 1709 + - Windows 10 版本 1607 + - Windows 8.1 - Windows 7 SP1 [ESU](https://docs.microsoft.com/zh-cn/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) - 先决条件 - KB3063858 [64 位](https://www.microsoft.com/zh-cn/download/details.aspx?id=47442) / [32 位](https://www.microsoft.com/zh-cn/download/details.aspx?id=47409) + - Windows Server 2019 + - Windows Server 2016 + - Windows Server 2012 R2 + - Windows Server 2012 - macOS 10.14 Mojave 或更高版本 - Linux 发行版 - Arch Linux @@ -76,8 +87,8 @@ ## ⛔ 不受支持的操作系统 - Windows 8 - [由于微软官方对该产品的支持已结束](https://docs.microsoft.com/zh-cn/lifecycle/products/windows-8),故本程序无法在此操作系统上运行,[建议升级到 Windows 8.1](https://support.microsoft.com/zh-cn/windows/%E4%BB%8E-windows-8-%E6%9B%B4%E6%96%B0%E5%88%B0-windows-8-1-17fc54a7-a465-6b5a-c1a0-34140afd0669) -- Windows Server 2012 / 2008 R2 SP1 - - 仅可使用 1.X 版本,2.X 开始不受支持,建议升级到 **Windows Server 2012 R2** 或更高版本 +- Windows Server 2008 R2 SP1 + - 仅可使用 1.X 版本,2.X 开始不受支持,建议升级到更高版本 - 无桌面 GUI 的 Windows Server / Linux 版本 ## 🌏 路线图 @@ -87,7 +98,7 @@ [Visual Studio 2019 版本 16.10 或更高版本](https://visualstudio.microsoft.com/zh-hans/vs/) 或 [JetBrains Rider](https://www.jetbrains.com/rider/) 或 ~~[Visual Studio for Mac](https://visualstudio.microsoft.com/zh-hans/vs/mac/)~~ 或 ~~[Visual Studio Code](https://code.visualstudio.com/)~~ - 系统要求 - [Windows 10 版本 2004 或更高版本:家庭版、专业版、教育版和企业版(不支持 LTSC 和 Windows 10 S,在较早的操作系统上可能不受支持)](https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/system-requirements) - - [macOS 10.13 High Sierra 或更高版本](https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs2019-system-requirements-mac) + - [macOS 10.14 Mojave 或更高版本](https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs2019-system-requirements-mac) - 工作负载 - Web 和云 - ASP.NET 和 Web 开发 diff --git a/release-template.md b/release-template.md index 503f5e0ab66..e6c845456be 100644 --- a/release-template.md +++ b/release-template.md @@ -14,30 +14,45 @@ 14. 修复 任务栏位于顶部时托盘菜单位置不正确 15. 新增 创意工坊划词翻译脚本 16. 修复 挂时长运行中列表移除游戏时引发的闪退 -17. 改进 一些~~待定~~语言的翻译文本 +17. 改进 部分语言的翻译文本 18. 新增 意大利语支持 19. 新增 西班牙语支持 -20. 修复了一些已知问题 -21. Android 版与 macOS 版现已开启 Beta 测试,可从官网上下载 +20. 移除 CEF 模块,现使用系统浏览器进行快速登录 +21. 改进 自动更新机制 +22. 改进 新增守护进程,当程序闪退时将自动重启 +23. 改进 开机自启动现仅对当前用户生效 +24. Android/macOS/Linux 版现已开启 Beta/Alpha 测试,可从 GitHub/Gitee 上下载 -| File | Checksum (SHA256) | -| ---- | ---- | -| Steam++_win_x64_v2.5.0.7z | SHA256 | -| Steam++_win_x64_v2.5.0.exe | SHA256 | -| Steam++_win_x64_v2.5.0.msix | SHA256 | +| RuntimeIdentifier | Available | Edition | +| ---- | ---- | ---- | +| win-x64 | ✅ | | +| osx-x64 | ✅ | β | +| linux-x64 | ✅ | α | +| android-arm64 | ✅ | β | +| android-arm | ✅ | β | +| win-arm64 | ❌ | | +| osx-arm64 | ❌ | | +| linux-arm64 | ❌ | | +| ios-arm64 | ❌ | | + +| File | Checksum (SHA256) | +| ---- | ---- | +| Steam++_win_x64_v2.4.9.7z | SHA256 | +| Steam++_win_x64_v2.4.9.exe | SHA256 | +| Steam++_win_x64_v2.4.9.msix | SHA256 | | | | -| Steam++_win_arm64_v2.5.0.7z | SHA256 | -| Steam++_win_arm64_v2.5.0.exe | SHA256 | -| Steam++_win_arm64_v2.5.0.msix | SHA256 | +| Steam++_win_arm64_v2.4.9.7z | SHA256 | +| Steam++_win_arm64_v2.4.9.exe | SHA256 | +| Steam++_win_arm64_v2.4.9.msix | SHA256 | | | | -| Steam++_linux_x64_v2.5.0.7z | SHA256 | -| Steam++_linux_x64_v2.5.0.deb | SHA256 | +| Steam++_linux_x64_v2.4.9.7z | SHA256 | +| Steam++_linux_x64_v2.4.9.deb | SHA256 | | | | -| Steam++_macos_x64_v2.5.0.dmg | SHA256 | -| Steam++_macos_arm64_v2.5.0.dmg | SHA256 | +| Steam++_macos_x64_v2.4.9.dmg | SHA256 | +| Steam++_macos_arm64_v2.4.9.dmg | SHA256 | | | | -| Steam++_android_arm64_v8a_v2.5.0.apk | SHA256 | -| Steam++_android_armeabi_v7a_v2.5.0.apk | SHA256 | +| Steam++_android_arm64_v8a_v2.4.9.apk | SHA256 | +| Steam++_android_armeabi_v7a_v2.4.9.apk | SHA256 | *** diff --git a/src/Common.ClientLib/Application/Services/IFilePickerPlatformService.cs b/src/Common.ClientLib/Application/Services/IFilePickerPlatformService.cs index 4743c605dbd..8d4ce8114e9 100644 --- a/src/Common.ClientLib/Application/Services/IFilePickerPlatformService.cs +++ b/src/Common.ClientLib/Application/Services/IFilePickerPlatformService.cs @@ -51,7 +51,7 @@ public interface IOpenFileDialogService : IServiceBase public interface ISaveFileDialogService : IServiceBase { - Task PlatformSaveAsync(SaveOptions? options); + Task PlatformSaveAsync(SaveOptions? options); static ISaveFileDialogService? Instance => DI.Get_Nullable(); } diff --git a/src/Common.CoreLib/IOPath.cs b/src/Common.CoreLib/IOPath.cs index 5931cdbbc34..91bb145ba0c 100644 --- a/src/Common.CoreLib/IOPath.cs +++ b/src/Common.CoreLib/IOPath.cs @@ -180,18 +180,20 @@ public static void InitFileSystem(Func getAppDataDirectory, Func #if !NET35 #region BaseDirectory - static readonly Lazy _BaseDirectory = new(() => - { - var value = AppContext.BaseDirectory; - var value2 = new DirectoryInfo(value); - if (value2.Parent != null && string.Equals(value2.Name, "Bin", StringComparison.OrdinalIgnoreCase)) - { - value = value2.Parent.FullName; - } - return value; - }); - - public static string BaseDirectory => _BaseDirectory.Value; + //static readonly Lazy _BaseDirectory = new(() => + //{ + // var value = AppContext.BaseDirectory; + // var value2 = new DirectoryInfo(value); + // if (value2.Parent != null && string.Equals(value2.Name, "Bin", StringComparison.OrdinalIgnoreCase)) + // { + // value = value2.Parent.FullName; + // } + // return value; + //}); + + public static string BaseDirectory => + //_BaseDirectory.Value; + AppContext.BaseDirectory; #endregion #endif diff --git a/src/Common.CoreLib/Properties/AssemblyInfo.Version.cs b/src/Common.CoreLib/Properties/AssemblyInfo.Version.cs index 92d76555fe9..a07566c74c1 100644 --- a/src/Common.CoreLib/Properties/AssemblyInfo.Version.cs +++ b/src/Common.CoreLib/Properties/AssemblyInfo.Version.cs @@ -2,5 +2,5 @@ using static System.Properties.ThisAssembly; [assembly: AssemblyFileVersion(Version)] -[assembly: AssemblyInformationalVersion(InfoVersion)] +//[assembly: AssemblyInformationalVersion(InfoVersion)] [assembly: AssemblyVersion(Version)] \ No newline at end of file diff --git a/src/Common.CoreLib/Properties/ThisAssembly.DynamicVersion.cs b/src/Common.CoreLib/Properties/ThisAssembly.DynamicVersion.cs new file mode 100644 index 00000000000..b855a81c47e --- /dev/null +++ b/src/Common.CoreLib/Properties/ThisAssembly.DynamicVersion.cs @@ -0,0 +1,55 @@ +namespace System.Properties +{ + static partial class ThisAssembly + { + const string alpha = "-alpha"; + const string beta = "-beta"; + + public static string DynamicVersion + { + get + { + switch (DI.Platform) + { + case Platform.Linux: + return Version + alpha; + case Platform.Android: + return Version + beta; + case Platform.Apple: + switch (DI.DeviceIdiom) + { + case DeviceIdiom.Phone: + break; + case DeviceIdiom.Tablet: + break; + case DeviceIdiom.Desktop: + return Version + beta; + case DeviceIdiom.TV: + break; + case DeviceIdiom.Watch: + break; + } + break; + case Platform.UWP: + break; + } + return Version; + } + } + +#if NETSTANDARD2_1 || NETCOREAPP2_1_OR_GREATER + static readonly Lazy mIsBetaRelease = new(() => DynamicVersion.Contains(beta, StringComparison.Ordinal)); + public static bool IsBetaRelease => mIsBetaRelease.Value; + + static readonly Lazy mIsAlphaRelease = new(() => DynamicVersion.Contains(alpha, StringComparison.Ordinal)); + public static bool IsAlphaRelease => mIsAlphaRelease.Value; + + static readonly Lazy mVersionDisplay = new(() => + { + Version version = new(Version); + return $"{version.ToString(3)}{(IsAlphaRelease ? " α" : (IsBetaRelease ? " β" : ""))}{(version.Revision <= 0 ? "" : " rev." + version.Revision)}"; + }); + public static string VersionDisplay => mVersionDisplay.Value; +#endif + } +} \ No newline at end of file diff --git a/src/Common.CoreLib/Properties/ThisAssembly.Version.cs b/src/Common.CoreLib/Properties/ThisAssembly.Version.cs index 49fd316c0fc..5ccdb02a5cb 100644 --- a/src/Common.CoreLib/Properties/ThisAssembly.Version.cs +++ b/src/Common.CoreLib/Properties/ThisAssembly.Version.cs @@ -2,8 +2,18 @@ namespace System.Properties { static partial class ThisAssembly { - public const string Version = "2.5.0"; + /// + /// 版本号 + /// 在以下平台中还需要将版本号写入相关的清单文件: + /// + /// iOS:\src\ST.Client.Mobile.iOS.App\Info.plist <CFBundleVersion> <CFBundleShortVersionString> + /// Android:\src\ST.Client.Mobile.Droid.App\Properties\AndroidManifest.xml <manifest ... android:versionCode(long递增) android:versionName + /// UWP(DesktopBridge):\src\ST.Client.Desktop.Avalonia.App.Bridge.Package\Package.appxmanifest <Identity ... Version + /// macOS:\src\ST.Client.Desktop.Avalonia.App\Info.plist <CFBundleVersion> <CFBundleShortVersionString> + /// + /// + public const string Version = "2.4.9"; - public const string InfoVersion = Version + "-beta"; + //public const string InfoVersion = Version + "-beta"; } } \ No newline at end of file diff --git a/src/Common.CoreLib/Properties/ThisAssembly.cs b/src/Common.CoreLib/Properties/ThisAssembly.cs index f425488942a..a76cf30cf53 100644 --- a/src/Common.CoreLib/Properties/ThisAssembly.cs +++ b/src/Common.CoreLib/Properties/ThisAssembly.cs @@ -2,15 +2,6 @@ namespace System.Properties { public static partial class ThisAssembly { -#if NETSTANDARD2_1 || NETCOREAPP2_1_OR_GREATER - static readonly Lazy mVersionDisplay = new(() => - { - Version version = new(Version); - return $"{version.ToString(3)}{(IsBetaRelease ? " β" : "")}{(version.Revision <= 0 ? "" : " rev." + version.Revision)}"; - }); - public static string VersionDisplay => mVersionDisplay.Value; -#endif - /// /// 定义程序集清单的产品名自定义属性 /// @@ -54,10 +45,5 @@ public static partial class ThisAssembly false #endif ; - -#if NETSTANDARD2_1 || NETCOREAPP2_1_OR_GREATER - static readonly Lazy mIsBetaRelease = new(() => InfoVersion.Contains("beta", StringComparison.OrdinalIgnoreCase)); - public static bool IsBetaRelease => mIsBetaRelease.Value; -#endif } } \ No newline at end of file diff --git a/src/ST.Client.Desktop.Avalonia.App.Bridge.Package/Package.appxmanifest b/src/ST.Client.Desktop.Avalonia.App.Bridge.Package/Package.appxmanifest index 3a6499b18e3..09bda2e74c3 100644 --- a/src/ST.Client.Desktop.Avalonia.App.Bridge.Package/Package.appxmanifest +++ b/src/ST.Client.Desktop.Avalonia.App.Bridge.Package/Package.appxmanifest @@ -9,7 +9,7 @@ + Version="2.5.0.0" /> Steam++ diff --git a/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs b/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs index 2f3ecbeadec..c1af805237d 100644 --- a/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs +++ b/src/ST.Client.Desktop.Avalonia.App/App.axaml.cs @@ -153,6 +153,7 @@ public override void Initialize() #endif UISettings.Theme.Subscribe(x => Theme = (AppTheme)x); UISettings.Language.Subscribe(x => R.ChangeLanguage(x)); + GeneralSettings.InitWindowsStartupAutoRun(); #if StartupTrace StartupTrace.Restart("UISettings.Subscribe"); #endif diff --git a/src/ST.Client.Desktop.Avalonia.App/Info.plist b/src/ST.Client.Desktop.Avalonia.App/Info.plist index 21a43646fe2..87a331f7158 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Info.plist +++ b/src/ST.Client.Desktop.Avalonia.App/Info.plist @@ -7,9 +7,9 @@ CFBundleIdentifier net.steampp.app CFBundleShortVersionString - 2.4.1 + 2.5.0 CFBundleVersion - 1 + 2.5.0.0 LSMinimumSystemVersion 10.15 CFBundleDevelopmentRegion diff --git a/src/ST.Client.Desktop.Avalonia.App/Program.cs b/src/ST.Client.Desktop.Avalonia.App/Program.cs index 210797c88c2..9c8dbb07f79 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Program.cs +++ b/src/ST.Client.Desktop.Avalonia.App/Program.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Linq; using System.Reactive; -using System.Runtime.ExceptionServices; using AvaloniaApplication = Avalonia.Application; using LogLevel = Microsoft.Extensions.Logging.LogLevel; @@ -19,7 +18,6 @@ static partial class Program // SynchronizationContext-reliant code before AppMain is called: things aren't initialized // yet and stuff might break. [STAThread] - [HandleProcessCorruptedStateExceptions] static int Main(string[] args) { #if WINDOWS_DESKTOP_BRIDGE diff --git a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/linux-x64.pubxml b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/linux-x64.pubxml index c701f2cb7f7..d337cffaae6 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/linux-x64.pubxml +++ b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/linux-x64.pubxml @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. linux-x64 net5.0 true - False - False + true + false - \ No newline at end of file + diff --git a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/osx-x64.pubxml b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/osx-x64.pubxml index 9716dbdef8d..e2d3238c21d 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/osx-x64.pubxml +++ b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/osx-x64.pubxml @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. osx-x64 net5.0 true - False - False + true + false - \ No newline at end of file + diff --git a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.aot.pubxml b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.aot.pubxml index 875637716e5..3510a551e63 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.aot.pubxml +++ b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.aot.pubxml @@ -1,4 +1,4 @@ - + @@ -10,12 +10,13 @@ https://go.microsoft.com/fwlink/?LinkID=208121. FileSystem true win7-x64 - True - true + true + false false Any CPU net6.0 - False - False + true + false + true - \ No newline at end of file + diff --git a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.pubxml b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.pubxml index 50daf770aff..f8cc00614f3 100644 --- a/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.pubxml +++ b/src/ST.Client.Desktop.Avalonia.App/Properties/PublishProfiles/win-x64.pubxml @@ -12,7 +12,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121. Any CPU net6.0 true - False - False + true + false + true diff --git a/src/ST.Client.Desktop.Avalonia.App/ST.Client.Desktop.Avalonia.App.csproj b/src/ST.Client.Desktop.Avalonia.App/ST.Client.Desktop.Avalonia.App.csproj index 25927de27f8..ab1c9bb28ca 100644 --- a/src/ST.Client.Desktop.Avalonia.App/ST.Client.Desktop.Avalonia.App.csproj +++ b/src/ST.Client.Desktop.Avalonia.App/ST.Client.Desktop.Avalonia.App.csproj @@ -68,12 +68,8 @@ false - - false - - - + Properties\AssemblyInfo.cs @@ -83,9 +79,9 @@ - - - + + + - + - + - +