Compare commits

..
354 Commits
Author SHA1 Message Date
Aigio Liu 6f1c11ff33 v2.7.0 rev.3 2022-04-26 12:49:52 +08:00
RMBGAME fe31908a50 库存游戏图片编辑功能新增Steam库横版与竖版封面的自定义 2022-04-26 12:34:38 +08:00
Aigio Liu 31f6c4c32c v2.7.0 rev.2 2022-04-26 09:47:48 +08:00
dependabot[bot] 4ac8a221ed Bump Splat from 14.2.1 to 14.2.8 (#1294)
Bumps [Splat](https://github.com/reactiveui/splat) from 14.2.1 to 14.2.8.
- [Release notes](https://github.com/reactiveui/splat/releases)
- [Commits](https://github.com/reactiveui/splat/compare/14.2.1...14.2.8)

---
updated-dependencies:
- dependency-name: Splat
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-26 09:44:45 +08:00
Mossimo 808ad66976 fix tips 2022-04-26 00:20:55 +08:00
Mossimo 9bd6f5d74f fix BasicsInfoAsync 2022-04-26 00:18:53 +08:00
Aigio Liu 0e08852567 fix 2022-04-25 23:44:54 +08:00
Aigio Liu 39f7cd8c1c fix
DownloadScript FileWrite catch, url:https://steampp.net/uploads/js/00000000000000000000000000000001/0.31.js, cachePath:Cache\Scripts\7e09dff759b91c87245ffdf73d544b91.download_cache | System.IO.IOException: The process cannot access the file 'Cache\Scripts\7e09dff759b91c87245ffdf73d544b91.download_cache' because it is being used by another process.
   at System.IO.FileSystem.DeleteFile(String fullPath)
   at System.IO.FileInfo.Delete()
   at System.Application.Services.Implementation.ScriptManager.DownloadScriptAsync(String url)
2022-04-25 23:38:47 +08:00
Aigio Liu 9d43183003 v2.7.0 rev.1 2022-04-25 22:46:58 +08:00
Aigio Liu aaf9a8c807 fix
Warn|HttpService|GetImageAsync_ Fail. | System.IO.IOException: The process cannot access the file 'Cache\Images\SteamAvatars\9943b8295aca0d050070724d526545239d0db5c9d07405cc62c6c6e35a0478fe.imgsrc.download-cache' because it is being used by another process.

Error|System.Application.Services.Implementation.ScriptManager|脚本读取异常请检查语法是否有错误:The file 'AppData\Scripts\7e09dff759b91c87245ffdf73d544b91.js' already exists.

global::Windows.ApplicationModel.Package.Current catch
2022-04-25 22:46:57 +08:00
Aigio Liu 3342ab0483 v2.7.0 rev.0 2022-04-25 19:52:44 +08:00
Aigio Liu 08ee9c11ef fix 2022-04-25 18:56:19 +08:00
Aigio Liu b6733bf965 修正格式 2022-04-25 18:28:32 +08:00
Aigio Liu 416f88d993 Add Microsoft.IdentityModel.Protocols 2022-04-25 10:09:45 +08:00
RMBGAME a82f27542e Misc 2022-04-25 08:44:13 +08:00
RMBGAME 37bb1ce4fe Misc 2022-04-25 08:38:08 +08:00
Aigio Liu f73031acd3 fix 2022-04-24 19:29:49 +08:00
Aigio Liu 27ecde90f4 fix packages version 2022-04-24 19:26:29 +08:00
Mossimo aefb1282e7 fix 2022-04-24 19:02:04 +08:00
Mossimo 1871eeff69 公告添加参数 设备类型 平台类型 2022-04-24 19:00:37 +08:00
Aigio Liu 5eaba8c5d4 Update AndroidNotificationServiceImpl & ASF 2022-04-24 17:41:13 +08:00
RMBGAME c092eb046e AuthTrade Use Image2 Control 2022-04-24 08:50:53 +08:00
RMBGAME e28ce37edd Misc 2022-04-24 08:50:46 +08:00
Aigio Liu cd6d7e7243 Update ASF V5.2.5.3 2022-04-21 11:35:01 +08:00
dependabot[bot]andAigio L da055b48d1 Bump AspNet.Security.OAuth.Apple from 6.0.5 to 6.0.6 (#1281)
Bumps [AspNet.Security.OAuth.Apple](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers) from 6.0.5 to 6.0.6.
- [Release notes](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/releases)
- [Commits](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/compare/6.0.5...6.0.6)

---
updated-dependencies:
- dependency-name: AspNet.Security.OAuth.Apple
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aigio L <24450093+AigioL@users.noreply.github.com>
2022-04-21 09:01:16 +08:00
dependabot[bot] 6e9bf51b1d Bump AspNet.Security.OAuth.QQ from 6.0.5 to 6.0.6 (#1282)
Bumps [AspNet.Security.OAuth.QQ](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers) from 6.0.5 to 6.0.6.
- [Release notes](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/releases)
- [Commits](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/compare/6.0.5...6.0.6)

---
updated-dependencies:
- dependency-name: AspNet.Security.OAuth.QQ
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-21 09:00:44 +08:00
RMBGAME b74bd54ae1 fix #1277 2022-04-21 07:28:42 +08:00
Mossimo 5f9a25868e rename 2022-04-19 17:26:59 +08:00
dependabot[bot] 2a6d400831 Bump Xamarin.Build.Download from 0.11.0 to 0.11.1 (#1275)
Bumps [Xamarin.Build.Download](https://github.com/xamarin/XamarinComponents) from 0.11.0 to 0.11.1.
- [Release notes](https://github.com/xamarin/XamarinComponents/releases)
- [Commits](https://github.com/xamarin/XamarinComponents/compare/ARCore-0.11.0...Xamarin.Build.Download-0.11.1)

---
updated-dependencies:
- dependency-name: Xamarin.Build.Download
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-19 10:27:12 +08:00
Aigio Liu 55f71a335c 修复嵌套 ViewPager2 导致滑动冲突,实现 Android 端【不再提醒】的 MessageBox,修复【不再提醒】因 null 引发的失效 2022-04-18 19:16:44 +08:00
RMBGAME 984286e6cd update steamaccount load method 2022-04-18 18:47:23 +08:00
RMBGAME ffbde37ce1 CustomFilePicker fileTypes 2022-04-18 17:43:59 +08:00
RMBGAME 7c93df07ca 修复win jumplist切换Steam Beta账号失效问题 2022-04-18 17:25:03 +08:00
Mossimo 1fc4adc4f3 fix linux 2022-04-18 17:00:11 +08:00
Mossimo ec4a224a0c fix 2022-04-18 16:35:43 +08:00
RMBGAME 4093323510 fix 2022-04-18 15:36:15 +08:00
RMBGAME 56ef576ec0 非Windows上保存自定义图片时获取用户方式改进 2022-04-18 15:33:38 +08:00
Aigio Liu cff783ae52 fix 2022-04-18 14:07:06 +08:00
RMBGAME fbbba8708f Misc 2022-04-18 13:07:37 +08:00
Aigio Liu 38acfa7760 fix 2022-04-18 13:04:13 +08:00
RMBGAME c86a9a5b04 Update release-template.md 2022-04-18 12:58:00 +08:00
Aigio Liu 0ac7ba5b1d Misc 2022-04-18 12:39:26 +08:00
RMBGAME 9260d8a5ca replace avalonia logo image 2022-04-18 08:25:38 +08:00
RMBGAME 33d017f990 Update Nuget Package 2022-04-18 08:25:32 +08:00
Mossimo c755f90a4e Add JumpUrl
通知服务处理
2022-04-17 18:21:29 +08:00
Aigio Liu 77928273bf NoticeDTO : NotificationBuilder.IInterface 2022-04-17 17:11:19 +08:00
Aigio Liu 15f83c9094 DateTimeOffset CustomTimeStamp 2022-04-17 15:43:41 +08:00
Aigio Liu 0c9abed768 Add Windows10NotificationServiceImpl 2022-04-17 13:46:05 +08:00
RMBGAME b883655ad9 change contact info 2022-04-17 09:57:10 +08:00
RMBGAME 4b9fdc6787 Update FluentAvalonia 2022-04-17 09:24:30 +08:00
RMBGAME 01c731a13a 修复某些情况库存游戏会卡住无限加载的问题 2022-04-17 08:56:07 +08:00
RMBGAME 998862823c SteamApp Edit Feature 99% 2022-04-17 07:54:02 +08:00
Aigio Liu e02764c7ce 改进 INotificationService,修复 net6.0-android sqlite 依赖错误 2022-04-17 01:07:03 +08:00
RMBGAME 1bbd5b425b SteamApp Edit Feature 90% 2022-04-16 11:41:28 +08:00
RMBGAME baed8b9ee5 保存游戏编辑信息到Steam AppInfo文件中 2022-04-16 11:41:20 +08:00
dependabot[bot] b76a31d246 Bump Z.EntityFramework.Plus.EFCore from 6.13.16 to 6.13.17 (#1260)
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.16 to 6.13.17.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/compare/6.13.16...6.13.17)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 08:58:10 +08:00
dependabot[bot] 843562a5d3 Bump Xamarin.Google.MLKit.BarcodeScanning from 116.1.2.3 to 116.1.2.5 (#1266)
Bumps [Xamarin.Google.MLKit.BarcodeScanning](https://github.com/xamarin/GooglePlayServicesComponents) from 116.1.2.3 to 116.1.2.5.
- [Release notes](https://github.com/xamarin/GooglePlayServicesComponents/releases)
- [Commits](https://github.com/xamarin/GooglePlayServicesComponents/commits)

---
updated-dependencies:
- dependency-name: Xamarin.Google.MLKit.BarcodeScanning
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-16 08:57:54 +08:00
RMBGAME 0b22813a8c 修复保存修改后的SteamGridDB图片时的错误 2022-04-15 07:34:04 +08:00
RMBGAME 857dfbd0d7 Update Image2 2022-04-15 06:43:37 +08:00
RMBGAME 9cd2647f73 修复从steamdb加载预览图失败问题 2022-04-15 06:43:37 +08:00
RMBGAME 1dc9087962 AppCard 2022-04-15 06:43:28 +08:00
dependabot[bot] 4b89619286 Bump DynamicData from 7.6.5 to 7.6.7 (#1264)
Bumps [DynamicData](https://github.com/reactiveui/DynamicData) from 7.6.5 to 7.6.7.
- [Release notes](https://github.com/reactiveui/DynamicData/releases)
- [Changelog](https://github.com/reactivemarbles/DynamicData/blob/main/ReleaseNotes.md)
- [Commits](https://github.com/reactiveui/DynamicData/compare/7.6.5...7.6.7)

---
updated-dependencies:
- dependency-name: DynamicData
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 16:17:17 +08:00
Aigio Liu e6f376e5ea fix 2022-04-14 08:12:48 +08:00
Aigio Liu a69aa24b56 Update .NET SDK 6.0.202 / Runtime 6.0.4 2022-04-13 11:19:50 +08:00
RMBGAME add400fbae SaveEditedAppInfo UI 2022-04-13 01:39:03 +08:00
Aigio Liu 157d205df9 Update Xamarin.Forms 5.0.0.2401 2022-04-12 13:24:57 +08:00
dependabot[bot]andAigio L 2706d63f69 Bump ReactiveUI.XamForms from 17.1.50 to 18.0.7 (#1240)
Bumps [ReactiveUI.XamForms](https://github.com/reactiveui/reactiveui) from 17.1.50 to 18.0.7.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.50...18.0.7)

---
updated-dependencies:
- dependency-name: ReactiveUI.XamForms
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aigio L <24450093+AigioL@users.noreply.github.com>
2022-04-12 09:17:42 +08:00
dependabot[bot] 965bb36e65 Bump de.hdodenhof.circleimageview from 3.1.0.1 to 3.1.0.4 (#1241)
Bumps [de.hdodenhof.circleimageview](https://github.com/AigioL/xamarin-bindings) from 3.1.0.1 to 3.1.0.4.
- [Release notes](https://github.com/AigioL/xamarin-bindings/releases)
- [Commits](https://github.com/AigioL/xamarin-bindings/commits)

---
updated-dependencies:
- dependency-name: de.hdodenhof.circleimageview
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:17:07 +08:00
dependabot[bot] 3ef8f16ea1 Bump XAB.FlexboxLayout from 3.0.0.1 to 3.0.0.2 (#1242)
Bumps [XAB.FlexboxLayout](https://github.com/AigioL/xamarin-bindings) from 3.0.0.1 to 3.0.0.2.
- [Release notes](https://github.com/AigioL/xamarin-bindings/releases)
- [Commits](https://github.com/AigioL/xamarin-bindings/commits)

---
updated-dependencies:
- dependency-name: XAB.FlexboxLayout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:16:50 +08:00
dependabot[bot] 91fd62cdd7 Bump ReactiveUI.AndroidX from 17.1.50 to 18.0.7 (#1243)
Bumps [ReactiveUI.AndroidX](https://github.com/reactiveui/reactiveui) from 17.1.50 to 18.0.7.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.50...18.0.7)

---
updated-dependencies:
- dependency-name: ReactiveUI.AndroidX
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:16:45 +08:00
dependabot[bot] 1a93067529 Bump XAB.TinyPinyin from 2.0.4.2 to 2.0.4.4 (#1244)
Bumps [XAB.TinyPinyin](https://github.com/AigioL/xamarin-bindings) from 2.0.4.2 to 2.0.4.4.
- [Release notes](https://github.com/AigioL/xamarin-bindings/releases)
- [Commits](https://github.com/AigioL/xamarin-bindings/commits)

---
updated-dependencies:
- dependency-name: XAB.TinyPinyin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:16:36 +08:00
dependabot[bot] c299bc1b3a Bump ReactiveUI from 17.1.50 to 18.0.7 (#1245)
Bumps [ReactiveUI](https://github.com/reactiveui/reactiveui) from 17.1.50 to 18.0.7.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.50...18.0.7)

---
updated-dependencies:
- dependency-name: ReactiveUI
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-12 09:16:24 +08:00
dependabot[bot] 6a03055ba0 Bump actions/upload-artifact from 2 to 3 (#1235)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 16:00:18 +08:00
dependabot[bot] 41e1192b25 Bump NLog from 4.7.14 to 4.7.15 (#1176)
Bumps [NLog](https://github.com/NLog/NLog) from 4.7.14 to 4.7.15.
- [Release notes](https://github.com/NLog/NLog/releases)
- [Changelog](https://github.com/NLog/NLog/blob/v4.7.15/CHANGELOG.md)
- [Commits](https://github.com/NLog/NLog/compare/v4.7.14...v4.7.15)

---
updated-dependencies:
- dependency-name: NLog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 11:22:54 +08:00
dependabot[bot] 9845d1a505 Bump Z.EntityFramework.Plus.EFCore from 6.13.15 to 6.13.16 (#1183)
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.15 to 6.13.16.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/commits)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 11:22:40 +08:00
Aigio Liu 2433ea1fa7 Publish Tool now GenerateCompressedPackage on Linux use Zstd 2022-04-11 08:38:50 +08:00
Aigio Liu d474332b35 try fix #1234 2022-04-10 22:40:00 +08:00
Aigio Liu 2fac37f9c2 Replace with package XAB.TinyPinyin & fix UnitTest 2022-04-09 18:39:01 +08:00
RMBGAME b045c98097 库存游戏编辑后保存功能 2022-04-09 00:41:36 +08:00
Aigio Liu cd6fb1e912 fix error NETSDK1148 2022-04-08 21:58:44 +08:00
RMBGAME 50df449b63 编辑库存游戏时图片保存 2022-04-08 20:42:24 +08:00
Aigio Liu 52fed1d494 Add FileSystemBase.InitFileSystemUseDestFirst 2022-04-08 16:49:28 +08:00
Aigio Liu 97bb658cda Update Swashbuckle.AspNetCore 6.3.0 & Add OSName ChromeOS 2022-04-08 14:34:35 +08:00
dependabot[bot] 26133671ee Bump Xamarin.Essentials from 1.7.1 to 1.7.2 (#1227)
Bumps [Xamarin.Essentials](https://github.com/xamarin/Essentials) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/xamarin/Essentials/releases)
- [Commits](https://github.com/xamarin/Essentials/compare/1.7.1...1.7.2)

---
updated-dependencies:
- dependency-name: Xamarin.Essentials
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-08 09:24:28 +08:00
RMBGAME b87d610e1d Merge pull request #1206 from BeyondDimension/dependabot/nuget/Avalonia.Xaml.Behaviors-0.10.13.3
Bump Avalonia.Xaml.Behaviors from 0.10.13.2 to 0.10.13.3
2022-04-07 17:54:57 +08:00
Aigio Liu 070e4b909c fix HostsFileTest on Linux Fail 2022-04-06 17:44:52 +08:00
Aigio Liu 876f7706ff fix CI 2022-04-06 17:36:30 +08:00
Aigio Liu 999cd90c61 try fix CI 2022-04-06 15:50:02 +08:00
Aigio Liu 7151851812 try fix CI 2022-04-06 15:21:00 +08:00
Aigio Liu 498e9ededb Android MainActivity3 Impl & Update Nuget Packages 2022-04-06 14:33:54 +08:00
dependabot[bot] f3c040d621 Bump Avalonia.Xaml.Behaviors from 0.10.13.2 to 0.10.13.3
Bumps [Avalonia.Xaml.Behaviors](https://github.com/wieslawsoltes/AvaloniaBehaviors) from 0.10.13.2 to 0.10.13.3.
- [Release notes](https://github.com/wieslawsoltes/AvaloniaBehaviors/releases)
- [Commits](https://github.com/wieslawsoltes/AvaloniaBehaviors/compare/0.10.13.2...0.10.13.3)

---
updated-dependencies:
- dependency-name: Avalonia.Xaml.Behaviors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-05 23:19:38 +00:00
Aigio Liu 6bc806b9a9 try fix CI 2022-04-05 20:54:58 +08:00
Aigio Liu d39e9437a8 try fix CI 2022-04-05 20:18:41 +08:00
Aigio Liu 7b70591914 net6.0-android experimental fix complete 2022-04-05 20:02:25 +08:00
RMBGAME 50c68dcaf3 MessageWindow在高DPI下显示效果改进 2022-04-03 20:01:18 +08:00
Mossimo f6f38eaf34 完善证书相关操作。 2022-04-03 19:52:02 +08:00
Aigio Liu a7306d7478 fix CI 2022-04-03 18:32:20 +08:00
Aigio Liu e1e59cc66b net6.0-android experimental 2022-04-03 11:51:59 +08:00
RMBGAME 1610ee0165 better 2022-04-03 00:52:42 +08:00
RMBGAME b17534ef57 库存游戏编辑功能进度推进 2022-04-03 00:52:34 +08:00
Mossimo 2475f59ff1 优化Mac证书安装(弹出控制台),修复现在可以正确识别证书是否信任,修复现在证书在Mac上会正确的安装到 用户的证书下 不再安装到系统下证书。 2022-04-02 23:13:45 +08:00
Aigio Liu dc1415c0ce fix src/ST.Client/ST.Client.csproj Reference 2022-04-02 20:20:07 +08:00
Aigio Liu 9b1eb631c1 Android SignOut Impl 2022-04-02 20:16:45 +08:00
RMBGAME 97566df29d 修正未启动Steam时加载游戏列表没有及时刷新的问题 2022-04-02 14:00:06 +08:00
RMBGAME e0fbe76b97 SteamGridDBDialog 2022-04-02 13:59:57 +08:00
Aigio Liu 2f76b78ffd fix Android ThirdPartyLoginHelper.StartServer catch & update android screenshot & fix NotificationServiceImpl 2022-04-02 13:45:43 +08:00
Mossimo 5179ad8827 Merge pull request #1189 from BeyondDimension/feature/account-info
Feature/account info
2022-04-02 12:49:23 +08:00
Mossimo ce222da8ef fix 2022-04-02 12:35:19 +08:00
RMBGAME 31dd1731df 支持从 SteamGridDB 匹配获取自定义封面 2022-04-01 17:33:31 +08:00
Mossimo 5388425f1d 2022-04-01 16:48 2022-04-01 16:48:06 +08:00
Mossimo 56687596c6 2022-04-01 16:36 2022-04-01 16:39:10 +08:00
Mossimo edf5acc455 封面图更新,点击打开 详情 2022-04-01 16:33:43 +08:00
Aigio Liu b21972db50 fix Resx Values 2022-04-01 11:11:17 +08:00
Aigio Liu 7a12b50ba4 Add ProxyMode Resx String 2022-04-01 11:04:57 +08:00
RMBGAME cfb5796cb6 fix #1186 2022-03-31 16:59:29 +08:00
RMBGAME faecc2b4d8 SteamApp Edit Save 2022-03-31 16:51:01 +08:00
Aigio Liu c3c7c889d4 ProxySettings.ProxyMode replace ProxySettings.IsVpnMode 2022-03-28 22:31:38 +08:00
RMBGAME e29e7a8f0e Update FluentAvalonia 2022-03-26 00:15:46 +08:00
Aigio Liu 3723e0866f #1167 当使用 IPC.config 时,程序内打开网页端口号值不正确 2022-03-25 22:45:02 +08:00
Mossimo bf5ca108e0 DeleteCer security delete-certificate -Z Sha-1 2022-03-25 17:37:51 +08:00
Aigio Liu 69e60440e1 fix Android Guide Pages Test API 21 🆗 2022-03-25 10:22:01 +08:00
RMBGAME 76e75abbc2 Merge pull request #1166 from BeyondDimension/dependabot/nuget/Avalonia.Xaml.Behaviors-0.10.13.2
Bump Avalonia.Xaml.Behaviors from 0.10.13 to 0.10.13.2
2022-03-25 07:45:52 +08:00
dependabot[bot] df7c1d62fb Bump Avalonia.Xaml.Behaviors from 0.10.13 to 0.10.13.2
Bumps [Avalonia.Xaml.Behaviors](https://github.com/wieslawsoltes/AvaloniaBehaviors) from 0.10.13 to 0.10.13.2.
- [Release notes](https://github.com/wieslawsoltes/AvaloniaBehaviors/releases)
- [Commits](https://github.com/wieslawsoltes/AvaloniaBehaviors/compare/0.10.13...0.10.13.2)

---
updated-dependencies:
- dependency-name: Avalonia.Xaml.Behaviors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 23:21:38 +00:00
Aigio Liu ceabdaaa64 fix Android Guide Pages Test API 31 🆗 2022-03-25 00:17:47 +08:00
Aigio Liu 170dc355b7 use NextRequestCode() 2022-03-24 19:29:28 +08:00
Aigio Liu 0b9bccf1e3 Android Guide Pages 2022-03-24 19:21:54 +08:00
dependabot[bot] 91ce45feda Bump Avalonia.Xaml.Behaviors from 0.10.12.2 to 0.10.13
Bumps [Avalonia.Xaml.Behaviors](https://github.com/wieslawsoltes/AvaloniaBehaviors) from 0.10.12.2 to 0.10.13.
- [Release notes](https://github.com/wieslawsoltes/AvaloniaBehaviors/releases)
- [Commits](https://github.com/wieslawsoltes/AvaloniaBehaviors/compare/0.10.12.2...0.10.13)

---
updated-dependencies:
- dependency-name: Avalonia.Xaml.Behaviors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 13:35:57 +08:00
RMBGAME 61722994b1 起始页UI更新 2022-03-24 08:47:00 +08:00
RMBGAME 15557ecd74 改进部分UI问题 2022-03-24 07:49:58 +08:00
RMBGAME 53b2c514a5 新增库存游戏类型筛选状态保存 2022-03-24 06:23:32 +08:00
Mossimo 517a259e4e move to debug 2022-03-23 17:11:29 +08:00
Mossimo f15d005771 按钮 , 文本多语言 2022-03-23 17:10:02 +08:00
Mossimo 9f9478f0e5 修改Tab名 2022-03-23 16:52:40 +08:00
Mossimo 3822a646de hb dev 2022-03-23 16:35:13 +08:00
Mossimo 35d4bc83e6 账户历史记录窗口 2022-03-23 16:30:06 +08:00
RMBGAME f7a5646836 Merge pull request #794 from BeyondDimension/feature/edit-game-info
v2.7.0 累计改动提交
2022-03-23 15:02:03 +08:00
Aigio Liu 29820061e1 fix slnf 2022-03-23 14:57:21 +08:00
RMBGAME 281332be71 fix https://appcenter.ms/orgs/BeyondDimension/apps/Steam/crashes/errors/1089197758u/overview
修复菜单切换社区加速UI错位问题 fix #915
修复菜单切换时会错误的重置当前页面的一些状态,例如ASF滚动条无法置底问题
2022-03-23 14:37:23 +08:00
RMBGAME 92f1eb9585 Merge branch 'develop' into feature/edit-game-info 2022-03-23 10:29:19 +08:00
RMBGAME 0b9fdcc0b6 StartPage 2022-03-23 10:27:11 +08:00
Aigio Liu d83c0536c9 Add System.Runtime.CompilerServices.IsExternalInit 2022-03-23 10:24:26 +08:00
RMBGAME d95559e36a Add StartPage & Update New Icon 2022-03-23 08:06:54 +08:00
RMBGAME 185532c79a 修正高DPI下主菜单图标模糊问题 2022-03-23 05:20:26 +08:00
dependabot[bot] c6710ddf2c Bump Z.EntityFramework.Plus.EFCore from 6.13.14 to 6.13.15
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.14 to 6.13.15.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/compare/6.13.14...6.13.15)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 11:10:00 +08:00
dependabot[bot] 537fc51d49 Bump NUnit from 3.13.2 to 3.13.3
Bumps [NUnit](https://github.com/nunit/nunit) from 3.13.2 to 3.13.3.
- [Release notes](https://github.com/nunit/nunit/releases)
- [Changelog](https://github.com/nunit/nunit/blob/v3.13.3/CHANGES.md)
- [Commits](https://github.com/nunit/nunit/compare/v3.13.2...v3.13.3)

---
updated-dependencies:
- dependency-name: NUnit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 11:07:47 +08:00
Aigio Liu ed3cf8d36e Update README & Update Android About UI 2022-03-21 21:13:02 +08:00
RMBGAME 09ab684548 Merge branch 'develop' into feature/edit-game-info 2022-03-21 08:49:44 +08:00
RMBGAME fbe0d85d12 UI 样式优化调整 2022-03-21 08:44:19 +08:00
RMBGAME 5887602e31 fix ex 2022-03-21 07:42:02 +08:00
RMBGAME e0bbb58c1a Merge branch 'develop' into feature/edit-game-info 2022-03-21 06:40:30 +08:00
RMBGAME 3b3bcc856a rename FilePicker 2022-03-21 06:38:49 +08:00
Aigio Liu 846c9feac1 fix IsAdministrator 2022-03-19 16:18:25 +08:00
Aigio Liu 8f7930450f v2.7.0 in progress 2022-03-19 14:02:29 +08:00
Aigio Liu c913f623e9 finish Android VpnService 2022-03-19 13:28:05 +08:00
Aigio Liu 21a2dc8d31 add arrays.xml 2022-03-19 13:28:04 +08:00
Aigio Liu eef90d9aaf IsAdministrator Impl => ASF IsRunningAsRoot
Add OnMainOpenTryShowNewVersionWindow
2022-03-17 19:11:14 +08:00
RMBGAME 7e1b4bd820 fix https://appcenter.ms/orgs/BeyondDimension/apps/Steam/crashes/errors/1887110022u 2022-03-17 18:47:03 +08:00
Mossimo 2af95b4491 Linux 可以监听443端口配置 2022-03-17 17:48:31 +08:00
Mossimo 5167c6cbfe fix build osxapp 2022-03-17 15:14:25 +08:00
RMBGAME c551cd278e Merge branch 'develop' into feature/edit-game-info 2022-03-17 15:07:20 +08:00
RMBGAME 258aa518a9 hosts加速模式下不能使用仅启用脚本功能 2022-03-17 14:41:51 +08:00
Mossimo 6158b30364 tryfix 2022-03-17 14:11:11 +08:00
Mossimo f721c6695f try build 2022-03-17 13:54:53 +08:00
Mossimo a8c7a6fe02 try fix 2022-03-17 13:37:46 +08:00
Mossimo 8969f7008c tryFixOsxBuild SH 2022-03-17 13:12:24 +08:00
Aigio Liu f0e6a4fb8f fix OSXBuild 2022-03-17 12:45:35 +08:00
Aigio Liu e647d195fa fix OSXBuild 2022-03-17 10:48:09 +08:00
Aigio Liu 229e9644de fix Publish Tool OSXBuild & Add Debug Command 2022-03-17 10:45:23 +08:00
Aigio Liu ea59d32c93 add x86 Native Library README 2022-03-17 10:44:51 +08:00
Aigio Liu d794fb6a22 Add Native Library README.md
fix Android Java.Lang.NoSuchMethodError: no non-static method "Landroid/widget/CompoundButton;.getButtonDrawable()Landroid/graphics/drawable/Drawable;"
https://developer.android.google.cn/reference/kotlin/android/widget/CompoundButton?hl=en#getbuttondrawable
try fix AuthService.ImportSteamGuard NullReferenceException
2022-03-17 10:16:34 +08:00
Mossimo 62ad711dbd try build osx 2022-03-16 13:35:31 +08:00
RMBGAME 2f472a55ad 完成 FilePicker UI 2022-03-16 12:47:28 +08:00
Aigio Liu 588d663216 fix osx-arm64.pubxml 2022-03-16 11:53:46 +08:00
Aigio Liu 5510b4915c add libe_sqlite3.dylib 2022-03-16 11:53:20 +08:00
Aigio Liu f3649d3246 fix macos-arm64 pubxml 2022-03-16 11:33:08 +08:00
RMBGAME fe45b39c8f Merge branch 'develop' into feature/edit-game-info 2022-03-16 09:47:10 +08:00
RMBGAME c59fb1076c Merge pull request #1109 from BeyondDimension/dependabot/submodules/references/AvaloniaGif-7b41651
Bump references/AvaloniaGif from `016cf27` to `7b41651`
2022-03-16 09:46:13 +08:00
RMBGAME 7717188152 Update FluentAvalonia 2022-03-16 09:45:27 +08:00
RMBGAME 8e78557f16 50% 2022-03-16 09:38:19 +08:00
Aigio Liu 835083b899 Remove Microsoft Store 2022-03-15 08:53:42 +08:00
RMBGAME 1588749280 SteamGridDB API Added 2022-03-15 07:07:06 +08:00
RMBGAME 69c6baf39e FilePicker Control 2022-03-14 03:39:15 +08:00
RMBGAME 36bff3751d only installed load launch items 2022-03-12 03:53:37 +08:00
Mossimo 86df7af88d fix 2022-03-12 03:22:22 +08:00
RMBGAME 09edd5dc3d Merge branch 'develop' into feature/edit-game-info 2022-03-12 03:16:14 +08:00
RMBGAME cd599de46a async 2022-03-12 03:14:48 +08:00
RMBGAME 3d8001dc75 async EnableProxyScripts 2022-03-12 03:11:11 +08:00
Mossimo da3a1e9d9d fix 2022-03-12 03:02:16 +08:00
RMBGAME 49aff6e7dc UI 2022-03-12 02:49:03 +08:00
Mossimo bf34c219a1 fix 2022-03-12 02:41:31 +08:00
RMBGAME efbc17d15f Merge branch 'develop' into feature/edit-game-info 2022-03-12 02:32:16 +08:00
RMBGAME 682165d90e Bump references/AvaloniaGif from 016cf27 to 7b41651 2022-03-12 02:30:00 +08:00
RMBGAME 046d60112c 编辑游戏支持启动项获取 2022-03-12 02:25:00 +08:00
Mossimo 927439c80d 优化脚本占用 不启动加速不占用内存
this.WhenAnyValue(v => v.ProxyScripts) add   if (httpProxyService.ProxyRunning)
2022-03-11 23:37:18 +08:00
Aigio Liu a28f8fa1e1 Add Shadowsocks.VpnService Impl & Store App Rename 2022-03-11 23:12:01 +08:00
dependabot[bot] 29cc793628 Bump Square.OkHttp3 from 4.9.2 to 4.9.3
Bumps [Square.OkHttp3](https://github.com/xamarin/XamarinComponents) from 4.9.2 to 4.9.3.
- [Release notes](https://github.com/xamarin/XamarinComponents/releases)
- [Commits](https://github.com/xamarin/XamarinComponents/commits)

---
updated-dependencies:
- dependency-name: Square.OkHttp3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-11 12:58:47 +08:00
dependabot[bot] 42f8971bd7 Bump DynamicData from 7.6.2 to 7.6.5
Bumps [DynamicData](https://github.com/reactiveui/DynamicData) from 7.6.2 to 7.6.5.
- [Release notes](https://github.com/reactiveui/DynamicData/releases)
- [Changelog](https://github.com/reactivemarbles/DynamicData/blob/main/ReleaseNotes.md)
- [Commits](https://github.com/reactiveui/DynamicData/compare/7.6.2...7.6.5)

---
updated-dependencies:
- dependency-name: DynamicData
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-11 12:58:17 +08:00
Aigio Liu f98473246c Add Shadowsocks Kotlin Code 2022-03-09 20:57:53 +08:00
dependabot[bot] e9bbbd8a32 Bump DynamicData from 7.5.4 to 7.6.2
Bumps [DynamicData](https://github.com/reactiveui/DynamicData) from 7.5.4 to 7.6.2.
- [Release notes](https://github.com/reactiveui/DynamicData/releases)
- [Changelog](https://github.com/reactivemarbles/DynamicData/blob/main/ReleaseNotes.md)
- [Commits](https://github.com/reactiveui/DynamicData/compare/7.5.4...7.6.2)

---
updated-dependencies:
- dependency-name: DynamicData
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-09 11:01:55 +08:00
dependabot[bot] 9a6c52b88f Bump Swashbuckle.AspNetCore from 6.2.3 to 6.3.0
Bumps [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) from 6.2.3 to 6.3.0.
- [Release notes](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases)
- [Commits](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/compare/v6.2.3...v6.3.0)

---
updated-dependencies:
- dependency-name: Swashbuckle.AspNetCore
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-09 11:01:07 +08:00
Aigio Liu a603fdd834 Update .NET 6.0.3
https://devblogs.microsoft.com/dotnet/march-2022-updates
2022-03-09 09:50:14 +08:00
dependabot[bot] a5343bb2b2 Bump references/AvaloniaGif from 016cf27 to 7b41651
Bumps [references/AvaloniaGif](https://github.com/SteamTools-Team/AvaloniaGif) from `016cf27` to `7b41651`.
- [Release notes](https://github.com/SteamTools-Team/AvaloniaGif/releases)
- [Commits](https://github.com/SteamTools-Team/AvaloniaGif/compare/016cf27b57504bece57657ed6707e1ea3ffab02f...7b4165159df6948f9e8b35632cb42d626a1454f9)

---
updated-dependencies:
- dependency-name: references/AvaloniaGif
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 23:25:44 +00:00
RMBGAME e14eec48e9 改进库存游戏信息读取优化内存占用 2022-03-09 07:12:38 +08:00
RMBGAME 2f2923fdb8 Merge branch 'develop' into feature/edit-game-info 2022-03-09 02:20:58 +08:00
Aigio Liu f41fd35d78 Update ProxySettings.DefaultProxyMode 2022-03-09 00:31:23 +08:00
Aigio Liu 32e90b672f Add ProxyMode 2022-03-09 00:29:12 +08:00
RMBGAME ad98879d5c Update FluentAvalonia 2022-03-09 00:14:07 +08:00
Aigio Liu 61a4f05480 fix Android VpnService 2022-03-08 23:52:56 +08:00
Aigio Liu 3a8a232f98 fix V2RayVpnService AddDisallowedApplication this 2022-03-08 20:30:25 +08:00
Aigio Liu 52897064dd fix 2022-03-08 16:43:26 +08:00
Aigio Liu e202f4ae5e fix 2022-03-08 14:09:36 +08:00
Aigio Liu f51ce974de New MS Store Id 2022-03-08 11:06:18 +08:00
dependabot[bot] 4806dbcf27 Bump System.CommandLine from 2.0.0-beta1.21308.1 to 2.0.0-beta3.22114.1
Bumps [System.CommandLine](https://github.com/dotnet/command-line-api) from 2.0.0-beta1.21308.1 to 2.0.0-beta3.22114.1.
- [Release notes](https://github.com/dotnet/command-line-api/releases)
- [Changelog](https://github.com/dotnet/command-line-api/blob/main/docs/History.md)
- [Commits](https://github.com/dotnet/command-line-api/commits)

---
updated-dependencies:
- dependency-name: System.CommandLine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 10:23:18 +08:00
dependabot[bot] e1db44af68 Bump Moq from 4.17.1 to 4.17.2
Bumps [Moq](https://github.com/moq/moq4) from 4.17.1 to 4.17.2.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.17.1...v4.17.2)

---
updated-dependencies:
- dependency-name: Moq
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 10:22:48 +08:00
Aigio Liu d6031c8acd API RefreshUserInfo 2022-03-07 10:25:32 +08:00
vanja-san 2852c630e9 Update SR.ru.resx 2022-03-06 10:51:15 +08:00
vanja-san 8a06b7d09f Update SR.ru.resx 2022-03-06 10:51:08 +08:00
vanja-san c14e548b0f Update SR.ru.resx 2022-03-06 10:51:03 +08:00
vanja-san 0820c880ac Update SR.ru.resx 2022-03-06 10:45:59 +08:00
vanja-san 84e3752f88 Update AppResources.ru.resx 2022-03-06 10:45:45 +08:00
Aigio Liu 1f62313978 Remove Resx Key [Script_Installed] & fix ru lost Resx Key [Settings_General_LogSize] 2022-03-05 21:44:49 +08:00
Aigio Liu ffcf0f0ff0 New translator author(Russian: vanja-san) 2022-03-05 21:30:18 +08:00
vanja-san c01a9157e2 Update AppResources.ru.resx 2022-03-05 20:56:55 +08:00
Aigio Liu 13db16b07c Update Android Packages
fix 空令牌刷新时提示密码错误
fix 令牌列表第一条与最后一条的内填充上下
2022-03-04 22:33:49 +08:00
Aigio Liu 33b76c6622 Android Change/BindPhoneNum Impl 2022-03-04 19:40:26 +08:00
Aigio Liu 6c905ab4c7 v2.6.9 2022-03-03 17:30:16 +08:00
Aigio Liu cb16f7690d Update JustArchiNET.Madness 3.3.0 2022-03-03 17:22:12 +08:00
Aigio Liu 2c80c2d80c Update ASF V5.2.3.5 2022-03-03 17:22:11 +08:00
RMBGAME 778a76a36e bump Avalonia package to 0.10.13 2022-03-03 16:57:33 +08:00
RMBGAME 660fb687f3 fix authtrade a error toast 2022-03-02 23:16:04 +08:00
RMBGAME 39766838df Merge pull request #1069 from BeyondDimension/dependabot/github_actions/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-03-02 22:58:59 +08:00
RMBGAME 12e438c8cd Merge pull request #1061 from BeyondDimension/dependabot/github_actions/actions/setup-dotnet-2
Bump actions/setup-dotnet from 1 to 2
2022-03-02 22:58:40 +08:00
Mossimo c5eae6a980 鼠标移动到头像上遮罩层 2022-03-02 18:42:18 +08:00
RMBGAME e249b0a60f fix 2022-03-02 18:24:52 +08:00
dependabot[bot] c407d0d5c7 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 23:28:41 +00:00
RMBGAME 848aa77029 fix #1066 2022-03-02 00:22:11 +08:00
RMBGAME bdfa82e557 改进令牌同步时不应该卡死主线程 2022-03-02 00:17:21 +08:00
Aigio Liu 4491e32cf3 resx refresh machine translate 2022-03-02 00:08:20 +08:00
Aigio Liu 86cb93a02a fix 2022-03-01 23:46:40 +08:00
Aigio Liu 1e26b22bc8 fix #1068 2022-03-01 23:45:18 +08:00
Mossimo 8e50c843f0 完善个人中心 2022-03-01 22:53:04 +08:00
Aigio Liu 8a4fcaa539 fix ChangeLanguageCore 2022-03-01 22:53:04 +08:00
RMBGAME 15fc32dd46 proxy UA edit 2022-03-01 22:53:04 +08:00
RMBGAME fb9cb68957 fix UI error 2022-03-01 22:53:04 +08:00
Aigio Liu 91152a55fc linux archive format changed from 7z to tar.zst 2022-03-01 22:53:04 +08:00
Aigio Liu 8aebbe2b0a Update nuget Packages & Add AccelerateProjectDTO.UserAgent & fix Android AutoRun 2022-03-01 22:53:03 +08:00
Aigio Liu ecf085c7c4 Desktop ASF Config Page UI 2022-03-01 22:53:03 +08:00
RMBGAME 13d6b6213f New Desktop About UI Style 2022-03-01 22:53:03 +08:00
Aigio Liu 9c49c82db9 fix Android FilePicker2 PermissionException & new Android ASF Config UI & #1025 2022-03-01 22:53:03 +08:00
Aigio Liu 428b841712 Android DonateActivity 2022-03-01 22:53:03 +08:00
Aigio Liu 716210b089 Android DonateActivity & ASF Update v5.2.2.5 2022-03-01 22:53:03 +08:00
dependabot[bot] 2b2ccdd3b1 Bump Z.EntityFramework.Plus.EFCore from 6.13.9 to 6.13.10
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.9 to 6.13.10.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/commits)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 22:53:02 +08:00
dependabot[bot] 8d0e857df5 Bump Microsoft.NET.Test.Sdk from 17.0.0 to 17.1.0
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.0.0 to 17.1.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.0.0...v17.1.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 22:53:01 +08:00
RMBGAME 978f0d8f51 Update .Net SDK 6.0.200 2022-03-01 22:53:01 +08:00
RMBGAME b4b0303426 修复部分UI错误 2022-03-01 22:53:01 +08:00
RMBGAME f4c928c46c 改进移除令牌提示 2022-03-01 22:53:01 +08:00
Aigio Liu 34a25ceabe Android Donate Page UI 2022-03-01 22:53:01 +08:00
Aigio Liu 90a5f30802 Android UserBasicInfoFragment UID Copy 2022-03-01 22:53:00 +08:00
Mossimo 3f113c96aa change color 2022-03-01 22:53:00 +08:00
RMBGAME 4982faf5ba 修复令牌交易丢失登录状态时刷新应该回到登录界面 2022-03-01 19:51:47 +08:00
RMBGAME e10e14cd0c 改进加速时域名匹配机制
修复一些UI文本错误
2022-03-01 19:36:46 +08:00
Aigio Liu 86a2bc25bc fix vdf lib 2022-03-01 14:59:17 +08:00
Aigio Liu 4ef3523dff fix Directory.Packages.props 2022-03-01 09:58:17 +08:00
Aigio Liu 5fa4086aee AutoMapper.Extensions.ExpressionMapping Version="4.1.3" 2022-03-01 09:54:12 +08:00
Aigio L 689faa5f67 Merge pull request #1050 from BeyondDimension/dependabot/nuget/Z.EntityFramework.Plus.EFCore-6.13.12
Bump Z.EntityFramework.Plus.EFCore from 6.13.10 to 6.13.12
2022-03-01 09:52:29 +08:00
Aigio L 0d6bb55d17 Merge pull request #1062 from BeyondDimension/dependabot/nuget/AutoMapper.Extensions.ExpressionMapping-5.0.1
Bump AutoMapper.Extensions.ExpressionMapping from 4.1.3 to 5.0.1
2022-03-01 09:51:38 +08:00
Aigio L 5ce5697a75 Merge pull request #1053 from BeyondDimension/dependabot/nuget/NLog-4.7.14
Bump NLog from 4.7.13 to 4.7.14
2022-03-01 09:51:31 +08:00
Aigio L a6694c5820 Merge pull request #1063 from BeyondDimension/dependabot/nuget/Moq-4.17.1
Bump Moq from 4.16.1 to 4.17.1
2022-03-01 09:51:18 +08:00
Aigio Liu d3be62c5ec Remove test code 2022-02-28 18:53:12 +08:00
Aigio Liu c68ff50812 fix Gameloop.Vdf index out of range 2022-02-28 18:51:54 +08:00
Aigio Liu fba8dca6c3 add submodule Gameloop.Vdf 2022-02-28 18:51:53 +08:00
Aigio Liu 03f3a73a60 改进 Android 图片加载大小,减少内存占用 2022-02-28 14:42:43 +08:00
dependabot[bot] 6cdfb98b0f Bump Moq from 4.16.1 to 4.17.1
Bumps [Moq](https://github.com/moq/moq4) from 4.16.1 to 4.17.1.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.16.1...v4.17.1)

---
updated-dependencies:
- dependency-name: Moq
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-27 23:20:42 +00:00
dependabot[bot] a930211594 Bump AutoMapper.Extensions.ExpressionMapping from 4.1.3 to 5.0.1
Bumps [AutoMapper.Extensions.ExpressionMapping](https://github.com/AutoMapper/AutoMapper.Extensions.ExpressionMapping) from 4.1.3 to 5.0.1.
- [Release notes](https://github.com/AutoMapper/AutoMapper.Extensions.ExpressionMapping/releases)
- [Commits](https://github.com/AutoMapper/AutoMapper.Extensions.ExpressionMapping/compare/v4.1.3...v5.0.1)

---
updated-dependencies:
- dependency-name: AutoMapper.Extensions.ExpressionMapping
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-27 23:20:14 +00:00
dependabot[bot] d54b828135 Bump actions/setup-dotnet from 1 to 2
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 1 to 2.
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](https://github.com/actions/setup-dotnet/compare/v1...v2)

---
updated-dependencies:
- dependency-name: actions/setup-dotnet
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-27 23:19:41 +00:00
Aigio Liu c86f28161f remove ShowTipKnownIssues & fix StartOrStopForegroundService 2022-02-27 16:21:43 +08:00
Aigio Liu 9932606be2 add libgojin.so 2022-02-27 16:09:34 +08:00
Aigio Liu d56de1676e add x86 so 2022-02-27 16:09:27 +08:00
Aigio Liu 5b787b6d7c Android IV2RayServiceManager.UpdateNotification Impl 2022-02-25 23:10:32 +08:00
Aigio Liu 35adebcbb1 Android V2RayVpnService Impl 2022-02-25 18:30:55 +08:00
Aigio Liu 83b6d9d67c Update release & Add libtun2socks.so for https://github.com/2dust/v2rayNG 2022-02-24 20:38:21 +08:00
Aigio Liu 7a18b0a8e2 fix ChangeLanguageCore 2022-02-24 14:40:50 +08:00
Aigio Liu 7ce53f11aa Add AccelerateProjectDTO.UserAgent 2022-02-24 13:56:28 +08:00
RMBGAME f45db63b87 Merge pull request #1054 from BeyondDimension/dependabot/nuget/Avalonia.Xaml.Behaviors-0.10.12.2
Bump Avalonia.Xaml.Behaviors from 0.10.12 to 0.10.12.2
2022-02-24 13:41:21 +08:00
RMBGAME 3a3beec9db proxy UA edit 2022-02-24 13:36:43 +08:00
RMBGAME 45c866ba2d fix UI error 2022-02-24 13:36:37 +08:00
Aigio Liu 90c0513493 Add UserAgent 2022-02-24 12:36:28 +08:00
Aigio Liu 7854a0446b linux archive format changed from 7z to tar.zst 2022-02-24 11:24:42 +08:00
Aigio Liu e730b4f7f1 Update nuget Packages & Add AccelerateProjectDTO.UserAgent & fix Android AutoRun 2022-02-24 11:12:23 +08:00
dependabot[bot] f2fa9d78de Bump Avalonia.Xaml.Behaviors from 0.10.12 to 0.10.12.2
Bumps [Avalonia.Xaml.Behaviors](https://github.com/wieslawsoltes/AvaloniaBehaviors) from 0.10.12 to 0.10.12.2.
- [Release notes](https://github.com/wieslawsoltes/AvaloniaBehaviors/releases)
- [Commits](https://github.com/wieslawsoltes/AvaloniaBehaviors/compare/0.10.12...0.10.12.2)

---
updated-dependencies:
- dependency-name: Avalonia.Xaml.Behaviors
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-23 23:24:27 +00:00
dependabot[bot] ef751f8c3a Bump NLog from 4.7.13 to 4.7.14
Bumps [NLog](https://github.com/NLog/NLog) from 4.7.13 to 4.7.14.
- [Release notes](https://github.com/NLog/NLog/releases)
- [Changelog](https://github.com/NLog/NLog/blob/v4.7.14/CHANGELOG.md)
- [Commits](https://github.com/NLog/NLog/compare/v4.7.13...v4.7.14)

---
updated-dependencies:
- dependency-name: NLog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-23 23:24:10 +00:00
Aigio Liu aa9698887d Desktop ASF Config Page UI 2022-02-23 16:51:13 +08:00
dependabot[bot] 7e04eeb7c6 Bump Z.EntityFramework.Plus.EFCore from 6.13.10 to 6.13.12
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.10 to 6.13.12.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/commits)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-22 23:23:22 +00:00
RMBGAME e59d1a5002 New Desktop About UI Style 2022-02-22 19:00:53 +08:00
Mossimo 2a42ce2caf a 2022-02-22 18:07:04 +08:00
RMBGAME 6d82ca02df bump FluentAvalonia to lastest code 2022-02-22 18:01:52 +08:00
Aigio Liu 8cc5bb4dab fix Android FilePicker2 PermissionException & new Android ASF Config UI & #1025 2022-02-22 15:32:47 +08:00
RMBGAME 6480d258bf Merge branch 'develop' into feature/edit-game-info 2022-02-22 00:46:42 +08:00
Aigio Liu 71f7fbf890 Android DonateActivity 2022-02-21 13:28:26 +08:00
Aigio Liu 98f6bbd249 Android DonateActivity & ASF Update v5.2.2.5 2022-02-20 11:11:47 +08:00
Aigio L 3b4efd3ce3 Merge pull request #1022 from BeyondDimension/dependabot/nuget/Z.EntityFramework.Plus.EFCore-6.13.10
Bump Z.EntityFramework.Plus.EFCore from 6.13.9 to 6.13.10
2022-02-20 11:11:25 +08:00
Aigio L a20ceb840f Merge pull request #1021 from BeyondDimension/dependabot/nuget/DynamicData-7.5.4
Bump DynamicData from 7.5.2 to 7.5.4
2022-02-20 11:10:49 +08:00
Aigio L ad23a712a3 Merge pull request #1024 from BeyondDimension/dependabot/nuget/Microsoft.NET.Test.Sdk-17.1.0
Bump Microsoft.NET.Test.Sdk from 17.0.0 to 17.1.0
2022-02-20 11:10:38 +08:00
RMBGAME 931c4ad288 Update .Net SDK 6.0.200 2022-02-19 19:50:46 +08:00
Mossimo c1f6781fa9 AccountPage TryAdd 2022-02-19 15:08:04 +08:00
RMBGAME 09a4e8b5dd 修复部分UI错误 2022-02-18 18:04:51 +08:00
RMBGAME fe4f11b868 改进移除令牌提示 2022-02-18 18:04:42 +08:00
dependabot[bot] 02e30a379a Bump Microsoft.NET.Test.Sdk from 17.0.0 to 17.1.0
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.0.0 to 17.1.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v17.0.0...v17.1.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-16 23:26:18 +00:00
Aigio Liu 6b816d7a88 Android Donate Page UI 2022-02-15 21:18:24 +08:00
dependabot[bot] 6c0d817c2b Bump Z.EntityFramework.Plus.EFCore from 6.13.9 to 6.13.10
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.9 to 6.13.10.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/commits)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 23:26:10 +00:00
dependabot[bot] 487365e148 Bump DynamicData from 7.5.2 to 7.5.4
Bumps [DynamicData](https://github.com/reactiveui/DynamicData) from 7.5.2 to 7.5.4.
- [Release notes](https://github.com/reactiveui/DynamicData/releases)
- [Changelog](https://github.com/reactivemarbles/DynamicData/blob/main/ReleaseNotes.md)
- [Commits](https://github.com/reactiveui/DynamicData/compare/7.5.2...7.5.4)

---
updated-dependencies:
- dependency-name: DynamicData
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-14 23:24:16 +00:00
Mossimo 467c0f4975 update 2022-02-14 21:27:42 +08:00
Aigio Liu 1245c44fe1 Android UserBasicInfoFragment UID Copy 2022-02-14 21:12:57 +08:00
RMBGAME 4fa35b762e fix proxy error 2022-02-14 19:44:32 +08:00
Aigio Liu a38fdbf1eb 改进 代理证书生成 2022-02-14 19:42:38 +08:00
Aigio Liu a64493721e Update ReactiveUI 17.1.50 2022-02-14 18:00:03 +08:00
Aigio Liu 809c531202 Add win-x86 / arm64 pubxml 2022-02-14 17:59:48 +08:00
Aigio Liu 6566e5f129 Add win-x86 / arm64 pubxml 2022-02-14 17:36:27 +08:00
Aigio Liu 7c37aca596 Android improve InstallCertificate 2022-02-14 17:36:00 +08:00
Aigio L 93b88bb35b Merge pull request #1014 from BeyondDimension/dependabot/nuget/ReactiveUI.XamForms-17.1.46
Bump ReactiveUI.XamForms from 17.1.17 to 17.1.46
2022-02-14 15:26:19 +08:00
Aigio L 54cc336983 Merge branch 'develop' into dependabot/nuget/ReactiveUI.XamForms-17.1.46 2022-02-14 15:26:13 +08:00
Aigio L 2e7eb319ea Merge pull request #1016 from BeyondDimension/dependabot/nuget/ReactiveUI.AndroidX-17.1.46
Bump ReactiveUI.AndroidX from 17.1.17 to 17.1.46
2022-02-14 15:25:43 +08:00
Aigio L 886f35e22a Merge pull request #1012 from BeyondDimension/dependabot/nuget/ReactiveUI-17.1.46
Bump ReactiveUI from 17.1.17 to 17.1.46
2022-02-14 15:25:35 +08:00
Aigio L df734d2784 Merge branch 'develop' into dependabot/nuget/ReactiveUI-17.1.46 2022-02-14 15:25:25 +08:00
Aigio L 718d6babad Merge pull request #1015 from BeyondDimension/dependabot/nuget/Splat-14.1.45
Bump Splat from 14.1.17 to 14.1.45
2022-02-14 15:24:43 +08:00
Aigio L f369ca2c7d Merge branch 'develop' into dependabot/nuget/Splat-14.1.45 2022-02-14 15:24:32 +08:00
Aigio L 3089eacc57 Merge pull request #1013 from BeyondDimension/dependabot/nuget/DynamicData-7.5.2
Bump DynamicData from 7.4.11 to 7.5.2
2022-02-14 15:24:09 +08:00
dependabot[bot] af1915de71 Bump ReactiveUI.AndroidX from 17.1.17 to 17.1.46
Bumps [ReactiveUI.AndroidX](https://github.com/reactiveui/reactiveui) from 17.1.17 to 17.1.46.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.17...17.1.46)

---
updated-dependencies:
- dependency-name: ReactiveUI.AndroidX
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-13 23:48:24 +00:00
dependabot[bot] 2c50a0a220 Bump Splat from 14.1.17 to 14.1.45
Bumps [Splat](https://github.com/reactiveui/splat) from 14.1.17 to 14.1.45.
- [Release notes](https://github.com/reactiveui/splat/releases)
- [Commits](https://github.com/reactiveui/splat/compare/14.1.17...14.1.45)

---
updated-dependencies:
- dependency-name: Splat
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-13 23:35:39 +00:00
dependabot[bot] 2f2404236a Bump ReactiveUI.XamForms from 17.1.17 to 17.1.46
Bumps [ReactiveUI.XamForms](https://github.com/reactiveui/reactiveui) from 17.1.17 to 17.1.46.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.17...17.1.46)

---
updated-dependencies:
- dependency-name: ReactiveUI.XamForms
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-13 23:35:17 +00:00
dependabot[bot] 9b6c374950 Bump DynamicData from 7.4.11 to 7.5.2
Bumps [DynamicData](https://github.com/reactiveui/DynamicData) from 7.4.11 to 7.5.2.
- [Release notes](https://github.com/reactiveui/DynamicData/releases)
- [Changelog](https://github.com/reactivemarbles/DynamicData/blob/main/ReleaseNotes.md)
- [Commits](https://github.com/reactiveui/DynamicData/compare/7.4.11...7.5.2)

---
updated-dependencies:
- dependency-name: DynamicData
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-13 23:34:36 +00:00
dependabot[bot] 84b15343cc Bump ReactiveUI from 17.1.17 to 17.1.46
Bumps [ReactiveUI](https://github.com/reactiveui/reactiveui) from 17.1.17 to 17.1.46.
- [Release notes](https://github.com/reactiveui/reactiveui/releases)
- [Commits](https://github.com/reactiveui/reactiveui/compare/17.1.17...17.1.46)

---
updated-dependencies:
- dependency-name: ReactiveUI
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-13 23:34:22 +00:00
RMBGAME 2e96d594df Bump FluentAvalonia to lastest
Bump titanium-web-proxy to lastest
2022-02-11 18:02:06 +08:00
Aigio L 2eec779a00 Merge pull request #996 from BeyondDimension/dependabot/nuget/Z.EntityFramework.Plus.EFCore-6.13.9
Bump Z.EntityFramework.Plus.EFCore from 6.13.7 to 6.13.9
2022-02-11 10:55:11 +08:00
Aigio L 285d071125 Merge pull request #1004 from BeyondDimension/dependabot/nuget/AspNet.Security.OAuth.Apple-6.0.4
Bump AspNet.Security.OAuth.Apple from 6.0.3 to 6.0.4
2022-02-11 10:55:01 +08:00
Aigio L 0ad2b9f05d Merge branch 'develop' into dependabot/nuget/AspNet.Security.OAuth.Apple-6.0.4 2022-02-11 10:54:56 +08:00
Aigio L 8d8565c4d1 Merge pull request #1005 from BeyondDimension/dependabot/nuget/AspNet.Security.OAuth.QQ-6.0.4
Bump AspNet.Security.OAuth.QQ from 6.0.3 to 6.0.4
2022-02-11 10:54:22 +08:00
Aigio L 2ee1eed145 Merge pull request #1006 from BeyondDimension/dependabot/nuget/TaskScheduler-2.10.1
Bump TaskScheduler from 2.10.0 to 2.10.1
2022-02-11 10:53:36 +08:00
dependabot[bot] d16778fda2 Bump TaskScheduler from 2.10.0 to 2.10.1
Bumps [TaskScheduler](https://github.com/dahall/taskscheduler) from 2.10.0 to 2.10.1.
- [Release notes](https://github.com/dahall/taskscheduler/releases)
- [Commits](https://github.com/dahall/taskscheduler/compare/v2.10.0...v2.10.1)

---
updated-dependencies:
- dependency-name: TaskScheduler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-10 23:25:55 +00:00
dependabot[bot] efbc9489cd Bump AspNet.Security.OAuth.QQ from 6.0.3 to 6.0.4
Bumps [AspNet.Security.OAuth.QQ](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/releases)
- [Commits](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/compare/6.0.3...6.0.4)

---
updated-dependencies:
- dependency-name: AspNet.Security.OAuth.QQ
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-10 23:25:31 +00:00
dependabot[bot] ca8ad41b7b Bump AspNet.Security.OAuth.Apple from 6.0.3 to 6.0.4
Bumps [AspNet.Security.OAuth.Apple](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers) from 6.0.3 to 6.0.4.
- [Release notes](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/releases)
- [Commits](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers/compare/6.0.3...6.0.4)

---
updated-dependencies:
- dependency-name: AspNet.Security.OAuth.Apple
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-10 23:23:51 +00:00
Mossimo 535894798c Remove UpdateValueByReplaceNoPattern DeleteValueByKey UpdateValueByReplace 2022-02-09 14:54:33 +08:00
Aigio Liu 629518f31d Update .NET 6.0.2 & Fix PubTool Version 4 2022-02-09 10:38:00 +08:00
dependabot[bot] a5535cba87 Bump Z.EntityFramework.Plus.EFCore from 6.13.7 to 6.13.9
Bumps [Z.EntityFramework.Plus.EFCore](https://github.com/zzzprojects/EntityFramework-Plus) from 6.13.7 to 6.13.9.
- [Release notes](https://github.com/zzzprojects/EntityFramework-Plus/releases)
- [Commits](https://github.com/zzzprojects/EntityFramework-Plus/commits)

---
updated-dependencies:
- dependency-name: Z.EntityFramework.Plus.EFCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-08 23:22:23 +00:00
Mossimo a495cd2856 Script SaveSqlite SteamAccountChange Fix VdfSaveType Share Disable 2022-02-08 18:35:50 +08:00
Mossimo e7d8e636d2 Accountpage 2022-02-06 12:41:34 +08:00
Mossimo 3855291c68 save 2022-01-11 18:08:36 +08:00
Mossimo d0d1baac29 通知公告(OK) 样式待微调 2021-12-30 23:28:34 +08:00
Mossimo 1c50fdf4af save 2021-12-27 23:50:41 +08:00
Mossimo c1b889f887 mvvm 2021-12-27 23:23:36 +08:00
Mossimo fa84523799 尝试修复GM刷新排序 2021-12-21 15:53:18 +08:00
Mossimo 160f3d53bb 跳过 cloudflare 浏览器检测 实现操作太复杂放弃,cookie 跨域无法解决,用户自己填写Cookie 操作麻烦 2021-12-16 16:56:39 +08:00
Mossimo ed77ad8d2d add window 2021-12-14 20:39:39 +08:00
RMBGAME 3fd32b3196 show editgameapp menu 2021-12-14 00:43:58 +08:00
735 changed files with 26108 additions and 8003 deletions
+190 -1
View File
@@ -17,7 +17,7 @@ charset = utf-8
[Makefile]
indent_style = tab
[*.{js,json,xaml,axaml,xml,resx,resw,csproj,wapproj,appxmanifest,.props}]
[*.{js,json,xaml,axaml,xml,resx,resw,csproj,wapproj,appxmanifest,props}]
indent_style = space
indent_size = 2
@@ -240,3 +240,192 @@ dotnet_style_namespace_match_folder = false
# IDE0130: 命名空间与文件夹结构不匹配
dotnet_diagnostic.IDE0130.severity = none
# IDE0055: 修正格式
dotnet_diagnostic.IDE0055.severity = error
# IDE1006: 命名样式
dotnet_diagnostic.IDE1006.severity = error
# SA1600: Elements should be documented
dotnet_diagnostic.SA1600.severity = none
# SA1629: Documentation text should end with a period
dotnet_diagnostic.SA1629.severity = silent
# SA1101: Prefix local calls with this
dotnet_diagnostic.SA1101.severity = silent
# SA1623: Property summary documentation should match accessors
dotnet_diagnostic.SA1623.severity = none
# SA1200: Using directives should be placed correctly
dotnet_diagnostic.SA1200.severity = none
# SA1208: System using directives should be placed before other using directives
dotnet_diagnostic.SA1208.severity = silent
# Default severity for analyzer diagnostics with category 'StyleCop.CSharp.LayoutRules'
dotnet_analyzer_diagnostic.category-StyleCop.CSharp.LayoutRules.severity = error
# SA1400: Access modifier should be declared
dotnet_diagnostic.SA1400.severity = silent
# SA1633: File should have header
dotnet_diagnostic.SA1633.severity = silent
# SA1128: Put constructor initializers on their own line
dotnet_diagnostic.SA1128.severity = silent
# SA1413: Use trailing comma in multi-line initializers
dotnet_diagnostic.SA1413.severity = suggestion
# SA1005: Single line comments should begin with single space
dotnet_diagnostic.SA1005.severity = none
# SA1515: Single-line comment should be preceded by blank line
dotnet_diagnostic.SA1515.severity = silent
# SA1512: Single-line comments should not be followed by blank line
dotnet_diagnostic.SA1512.severity = silent
# SA1122: Use string.Empty for empty strings
dotnet_diagnostic.SA1122.severity = silent
# SA1616: Element return value documentation should have text
dotnet_diagnostic.SA1616.severity = silent
# SA1310: Field names should not contain underscore
dotnet_diagnostic.SA1310.severity = silent
# SA1137: Elements should have the same indentation
dotnet_diagnostic.SA1137.severity = error
# SA1503: Braces should not be omitted
dotnet_diagnostic.SA1503.severity = silent
# SA1513: Closing brace should be followed by blank line
dotnet_diagnostic.SA1513.severity = silent
# SA1402: File may only contain a single type
dotnet_diagnostic.SA1402.severity = silent
# SA1133: Do not combine attributes
dotnet_diagnostic.SA1133.severity = silent
# SA1011: Closing square brackets should be spaced correctly
dotnet_diagnostic.SA1011.severity = silent
# SA1502: Element should not be on a single line
dotnet_diagnostic.SA1502.severity = silent
# SA1201: Elements should appear in the correct order
dotnet_diagnostic.SA1201.severity = silent
# SA1505: Opening braces should not be followed by blank line
dotnet_diagnostic.SA1505.severity = silent
# SA1508: Closing braces should not be preceded by blank line
dotnet_diagnostic.SA1508.severity = silent
# SA1614: Element parameter documentation should have text
dotnet_diagnostic.SA1614.severity = silent
# SA1116: Split parameters should start on line after declaration
dotnet_diagnostic.SA1116.severity = silent
# SA1601: Partial elements should be documented
dotnet_diagnostic.SA1601.severity = silent
# SA1009: Closing parenthesis should be spaced correctly
dotnet_diagnostic.SA1009.severity = silent
# SA1202: Elements should be ordered by access
dotnet_diagnostic.SA1202.severity = silent
# SA1311: Static readonly fields should begin with upper-case letter
dotnet_diagnostic.SA1311.severity = silent
# SA1127: Generic type constraints should be on their own line
dotnet_diagnostic.SA1127.severity = silent
# SA1503: Braces should not be omitted
dotnet_diagnostic.SA1503.severity = silent
# SA1649: File name should match first type name
dotnet_diagnostic.SA1649.severity = silent
# SA1210: Using directives should be ordered alphabetically by namespace
dotnet_diagnostic.SA1210.severity = silent
# SA1028: Code should not contain trailing whitespace
dotnet_diagnostic.SA1028.severity = silent
# SA1204: Static elements should appear before instance elements
dotnet_diagnostic.SA1204.severity = silent
# SA1203: Constants should appear before fields
dotnet_diagnostic.SA1203.severity = silent
# SA1123: Do not place regions within elements
dotnet_diagnostic.SA1123.severity = silent
# SA1615: Element return value should be documented
dotnet_diagnostic.SA1615.severity = silent
# SA1611: Element parameters should be documented
dotnet_diagnostic.SA1611.severity = silent
# SA1124: Do not use regions
dotnet_diagnostic.SA1124.severity = silent
# SA1520: Use braces consistently
dotnet_diagnostic.SA1520.severity = silent
# SA1107: Code should not contain multiple statements on one line
dotnet_diagnostic.SA1107.severity = silent
# SA1312: Variable names should begin with lower-case letter
dotnet_diagnostic.SA1312.severity = error
# SA1519: Braces should not be omitted from multi-line child statement
dotnet_diagnostic.SA1519.severity = silent
# SA1000: Keywords should be spaced correctly
dotnet_diagnostic.SA1000.severity = silent
# SA1205: Partial elements should declare access
dotnet_diagnostic.SA1205.severity = silent
# SA1401: Fields should be private
dotnet_diagnostic.SA1401.severity = silent
# SA1622: Generic type parameter documentation should have text
dotnet_diagnostic.SA1622.severity = silent
# SA1627: Documentation text should not be empty
dotnet_diagnostic.SA1627.severity = silent
# SA1403: File may only contain a single namespace
dotnet_diagnostic.SA1403.severity = silent
# SA1602: Enumeration items should be documented
dotnet_diagnostic.SA1602.severity = silent
# SA1108: Block statements should not contain embedded comments
dotnet_diagnostic.SA1108.severity = silent
# SA1642: Constructor summary documentation should begin with standard text
dotnet_diagnostic.SA1642.severity = silent
# SA1117: Parameters should be on same line or separate lines
dotnet_diagnostic.SA1117.severity = silent
# SA1501: Statement should not be on a single line
dotnet_diagnostic.SA1501.severity = silent
# SA1500: Braces for multi-line statements should not share line
dotnet_diagnostic.SA1500.severity = silent
# SA1518: Use line endings correctly at end of file
dotnet_diagnostic.SA1518.severity = silent
+26 -17
View File
@@ -17,18 +17,19 @@ jobs:
fail-fast: false
matrix:
configuration: [ Debug, Release ]
os: [ windows-latest, macOS-latest, ubuntu-latest ]
# os: [ windows-latest, macOS-latest, ubuntu-latest ]
os: [ windows-latest, macOS-latest ]
# rid: [ fd-win-x64, win-x64, osx-x64, linux-x64,linux-arm64 ]
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
@@ -40,16 +41,24 @@ jobs:
if: matrix.os == 'windows-latest'
run: dotnet workload install macos
- name: Install Maui(Windows)
- name: Install Android SDK(Unix)
if: ${{ matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest' }}
run: sudo dotnet workload install android
- name: Install Android SDK(Windows)
if: matrix.os == 'windows-latest'
run: dotnet workload install maui
run: dotnet workload install android
# - name: Install Maui(Windows)
# if: matrix.os == 'windows-latest'
# run: dotnet workload install maui
- name: Verify dotnet info
run: dotnet --info
- name: Checkout Credentials repository
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: SteamTools-Team/Credentials
token: ${{ secrets.REPO_TOKEN }}
@@ -86,9 +95,9 @@ jobs:
- name: Run ST.Client.Desktop.UnitTest
run: dotnet test ./tests/ST.Client.Desktop.UnitTest/ST.Client.Desktop.UnitTest.csproj -c "${{ matrix.configuration }}"
# - name: dotnet ST.Client.Desktop.UnitTest test
# if: matrix.os != 'windows-latest'
# run: dotnet test ./tests/ST.Client.Desktop.UnitTest/ST.Client.Desktop.UnitTest.csproj
- name: dotnet ST.Client.Desktop.UnitTest test
if: matrix.os != 'windows-latest'
run: dotnet test ./tests/ST.Client.Desktop.UnitTest/ST.Client.Desktop.UnitTest.csproj
- name: Get Short CommitId
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
@@ -117,7 +126,7 @@ jobs:
- name: Upload fd-win-x64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_win_x64_fde_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_win_x64_fde_${{ env.GITHUB_SHA_SHORT }}.7z
@@ -125,7 +134,7 @@ jobs:
- name: Upload win-x64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_win_x64_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_win_x64_${{ env.GITHUB_SHA_SHORT }}.7z
@@ -133,7 +142,7 @@ jobs:
- name: Upload macos-x64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_macos_x64_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_macos_x64_${{ env.GITHUB_SHA_SHORT }}.7z
@@ -141,7 +150,7 @@ jobs:
- name: Upload macos-arm64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_macos_arm64_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_macos_arm64_${{ env.GITHUB_SHA_SHORT }}.7z
@@ -149,15 +158,15 @@ jobs:
- name: Upload linux-x64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_linux_x64_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_x64_${{ env.GITHUB_SHA_SHORT }}.7z
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_x64_${{ env.GITHUB_SHA_SHORT }}.tar.zst
- name: Upload linux-arm64 App ${{ matrix.configuration }}
continue-on-error: true
if: ${{ matrix.os == 'windows-latest' && !startsWith(github.ref, 'refs/tags/') && github.event_name == 'push' }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_linux_arm64_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_arm64_${{ env.GITHUB_SHA_SHORT }}.7z
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_arm64_${{ env.GITHUB_SHA_SHORT }}.tar.zst
+15 -15
View File
@@ -22,13 +22,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
@@ -52,7 +52,7 @@ jobs:
- name: Checkout NSIS-Build repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: SteamTools-Team/NSIS-Build
token: ${{ secrets.REPO_TOKEN }}
@@ -60,7 +60,7 @@ jobs:
- name: Checkout Credentials repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: SteamTools-Team/Credentials
token: ${{ secrets.REPO_TOKEN }}
@@ -160,21 +160,21 @@ jobs:
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_macos_arm64_v${{ steps.tag.outputs.tag }}.7z" "${env:PublishFilePath}"
Write-Output "macos_arm64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_macos_arm64_v${{ steps.tag.outputs.tag }}.7z)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package linux-x64 7z
- name: Package linux-x64 tar.zst
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
shell: pwsh
run: |
New-Item -ItemType Directory -Path ${env:PublishFilePath} -Force > $null
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_linux_x64_v${{ steps.tag.outputs.tag }}.7z" "${env:PublishFilePath}"
Write-Output "linux_x64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_linux_x64_v${{ steps.tag.outputs.tag }}.7z)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_linux_x64_v${{ steps.tag.outputs.tag }}.tar.zst" "${env:PublishFilePath}"
Write-Output "linux_x64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_linux_x64_v${{ steps.tag.outputs.tag }}.tar.zst)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package linux-arm64 7z
- name: Package linux-arm64 tar.zst
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
shell: pwsh
run: |
New-Item -ItemType Directory -Path ${env:PublishFilePath} -Force > $null
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_linux_arm64_v${{ steps.tag.outputs.tag }}.7z" "${env:PublishFilePath}"
Write-Output "linux_arm64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_linux_arm64_v${{ steps.tag.outputs.tag }}.7z)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_linux_arm64_v${{ steps.tag.outputs.tag }}.tar.zst" "${env:PublishFilePath}"
Write-Output "linux_arm64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_linux_arm64_v${{ steps.tag.outputs.tag }}.tar.zst)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package linux-x64 deb
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
@@ -237,8 +237,8 @@ jobs:
| <sub>${{ env.ProjectName }}_win_x64_v${{ steps.tag.outputs.tag }}.exe</sub> | <sub>${{ env.exe_win_x64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_win_x64_fde_v${{ steps.tag.outputs.tag }}.exe</sub> | <sub>${{ env.exe_fd_win_x64_SHA256 }}</sub> |
|||
| <sub>${{ env.ProjectName }}_linux_x64_v${{ steps.tag.outputs.tag }}.7z</sub> | <sub>${{ env.linux_x64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_arm64_v${{ steps.tag.outputs.tag }}.7z</sub> | <sub>${{ env.linux_arm64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_x64_v${{ steps.tag.outputs.tag }}.tar.zst</sub> | <sub>${{ env.linux_x64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_arm64_v${{ steps.tag.outputs.tag }}.tar.zst</sub> | <sub>${{ env.linux_arm64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_x64_v${{ steps.tag.outputs.tag }}.deb</sub> | <sub>${{ env.deb_linux_x64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_arm64_v${{ steps.tag.outputs.tag }}.deb</sub> | <sub>${{ env.deb_linux_arm64_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_linux_x64_v${{ steps.tag.outputs.tag }}.rpm</sub> | <sub>${{ env.rpm_linux_x64_SHA256 }}</sub> |
@@ -264,13 +264,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
@@ -314,7 +314,7 @@ jobs:
- name: Checkout Credentials repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: SteamTools-Team/Credentials
token: ${{ secrets.REPO_TOKEN }}
+2 -2
View File
@@ -18,13 +18,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v1
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
+3
View File
@@ -37,3 +37,6 @@
[submodule "references/SevenZipSharp"]
path = references/SevenZipSharp
url = https://github.com/SteamTools-Team/SevenZipSharp.git
[submodule "references/Gameloop.Vdf"]
path = references/Gameloop.Vdf
url = https://github.com/BeyondDimension/Gameloop.Vdf.git
+272 -246
View File
@@ -1,287 +1,313 @@
<Project>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) Or $(TargetFramework.StartsWith('netcoreapp3.1'))">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NETCOREAPP31) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="3.1.22" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="3.1.22" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="3.1.22" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.22" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.22" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.22" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="3.1.22" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.22" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.22" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.22" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net5.0')) ">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NET50) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="5.0.12" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="5.0.12" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="5.0.12" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.12" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.12" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.12" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.12" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.12" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.12" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.12" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net6.0')) ">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NET60) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="6.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.1" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.1" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net6.0')) ">
<!-- Entity Framework Plus -->
<!-- A FREE & Open Source library to enhance EF6 and EF Core -->
<PackageVersion Include="Z.EntityFramework.Plus.EFCore" Version="6.13.7" />
<ItemGroup Condition=" $(TargetFramework.StartsWith('net6.0')) ">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NET60) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="6.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.4" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.4" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.4" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net5.0')) ">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NET50) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="5.0.2" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="5.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="5.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.16" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.16" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.14" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.16" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="5.0.16" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.16" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) Or $(TargetFramework.StartsWith('netcoreapp3.1'))">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NETCOREAPP31) -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="3.1.24" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="3.1.24" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="3.1.24" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.24" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.24" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.24" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="3.1.24" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.24" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.24" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.24" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net6.0')) ">
<!-- Entity Framework Plus -->
<!-- A FREE & Open Source library to enhance EF6 and EF Core -->
<PackageVersion Include="Z.EntityFramework.Plus.EFCore" Version="6.13.17" />
<!-- AspNetCore 6 OpenId/OAuth -->
<PackageVersion Include="AspNet.Security.OpenId.Steam" Version="6.0.0" />
<PackageVersion Include="AspNet.Security.OAuth.QQ" Version="6.0.3" />
<PackageVersion Include="AspNet.Security.OAuth.Apple" Version="6.0.3" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net48' Or '$(TargetFramework)' == 'net472' Or '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'net46' Or '$(TargetFramework)' == 'net462' Or '$(TargetFramework)' == 'net461' Or '$(TargetFramework)' == 'net45' Or '$(TargetFramework)' == 'net452' Or '$(TargetFramework)' == 'net451' ">
<!-- WindowsRuntime(NETFX) & PowerShell 5 -->
<PackageVersion Include="System.Runtime.WindowsRuntime" Version="4.7.0" />
<PackageVersion Include="System.Runtime.WindowsRuntime.UI.Xaml" Version="4.7.0" />
<PackageVersion Include="Microsoft.PowerShell.5.ReferenceAssemblies" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) Or $(TargetFramework.StartsWith('net5.0')) Or $(TargetFramework.StartsWith('netcoreapp3.1')) Or $(TargetFramework.StartsWith('netcoreapp3.0')) Or $(TargetFramework.StartsWith('netcoreapp2.2')) Or $(TargetFramework.StartsWith('netcoreapp2.1')) Or $(TargetFramework.StartsWith('netcoreapp2.0')) ">
<!-- .NET Platform Extensions 5 -->
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) ">
<!-- BCL(NETSTANDARD) -->
<PackageVersion Include="System.Text.Json" Version="6.0.1" />
<PackageVersion Include="System.Text.Encodings.Web" Version="6.0.0" />
<PackageVersion Include="System.Drawing.Common" Version="6.0.0" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Buffers" Version="4.5.1" />
<PackageVersion Include="System.Memory" Version="4.5.4" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
<PackageVersion Include="System.Diagnostics.Tracing" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<!-- Microsoft.* -->
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<!--<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="1.4.1" />-->
<!--<PackageVersion Include="Microsoft.Windows.SDK.NET.Ref" Version="10.0.19041.22" />-->
<!--<PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />-->
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22000.197" />
<!-- AspNetCore 6 OpenId/OAuth -->
<PackageVersion Include="Microsoft.IdentityModel.Protocols" Version="6.17.0" />
<PackageVersion Include="AspNet.Security.OpenId.Steam" Version="6.0.0" />
<PackageVersion Include="AspNet.Security.OAuth.QQ" Version="6.0.6" />
<PackageVersion Include="AspNet.Security.OAuth.Apple" Version="6.0.6" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net48' Or '$(TargetFramework)' == 'net472' Or '$(TargetFramework)' == 'net471' Or '$(TargetFramework)' == 'net46' Or '$(TargetFramework)' == 'net462' Or '$(TargetFramework)' == 'net461' Or '$(TargetFramework)' == 'net45' Or '$(TargetFramework)' == 'net452' Or '$(TargetFramework)' == 'net451' ">
<!-- WindowsRuntime(NETFX) & PowerShell 5 -->
<PackageVersion Include="System.Runtime.WindowsRuntime" Version="4.7.0" />
<PackageVersion Include="System.Runtime.WindowsRuntime.UI.Xaml" Version="4.7.0" />
<PackageVersion Include="Microsoft.PowerShell.5.ReferenceAssemblies" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) Or $(TargetFramework.StartsWith('net5.0')) Or $(TargetFramework.StartsWith('netcoreapp3.1')) Or $(TargetFramework.StartsWith('netcoreapp3.0')) Or $(TargetFramework.StartsWith('netcoreapp2.2')) Or $(TargetFramework.StartsWith('netcoreapp2.1')) Or $(TargetFramework.StartsWith('netcoreapp2.0')) ">
<!-- .NET Platform Extensions 5 -->
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) ">
<!-- BCL(NETSTANDARD) -->
<PackageVersion Include="System.Text.Json" Version="6.0.2" />
<PackageVersion Include="System.Text.Encodings.Web" Version="6.0.0" />
<PackageVersion Include="System.Drawing.Common" Version="6.0.0" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Buffers" Version="4.5.1" />
<PackageVersion Include="System.Memory" Version="4.5.4" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
<PackageVersion Include="System.Diagnostics.Tracing" Version="4.3.0" />
</ItemGroup>
<ItemGroup>
<!-- Microsoft.* -->
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<!--<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="1.4.1" />-->
<!--<PackageVersion Include="Microsoft.Windows.SDK.NET.Ref" Version="10.0.19041.22" />-->
<!--<PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />-->
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22000.197" />
<!-- AppCenter.* -->
<PackageVersion Include="Microsoft.AppCenter" Version="4.5.0" />
<PackageVersion Include="Microsoft.AppCenter.Analytics" Version="4.5.0" />
<PackageVersion Include="Microsoft.AppCenter.Crashes" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Analytics" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Crashes" Version="4.5.0" />
<!--<PackageVersion Include="nor0x.AppCenter" Version="4.4.0-XMAC" />
<!-- AppCenter.* -->
<PackageVersion Include="Microsoft.AppCenter" Version="4.5.0" />
<PackageVersion Include="Microsoft.AppCenter.Analytics" Version="4.5.0" />
<PackageVersion Include="Microsoft.AppCenter.Crashes" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Analytics" Version="4.5.0" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Crashes" Version="4.5.0" />
<!--<PackageVersion Include="nor0x.AppCenter" Version="4.4.0-XMAC" />
<PackageVersion Include="nor0x.AppCenter.Analytics" Version="4.4.0-XMAC" />
<PackageVersion Include="nor0x.AppCenter.Crashes" Version="4.4.0-XMAC" />-->
<!-- .NET Platform Extensions 6 -->
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="6.0.0" />
<!-- .NET Platform Extensions 6 -->
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="6.0.0" />
<!-- Xamarin -->
<PackageVersion Include="Xamarin.Essentials" Version="1.7.1" />
<!-- Xamarin.Forms -->
<PackageVersion Include="Xamarin.Forms" Version="5.0.0.2244" />
<PackageVersion Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2244" />
<PackageVersion Include="Xam.Plugins.Forms.ImageCircle" Version="3.1.1.1-beta" />
<!-- Xamarin -->
<PackageVersion Include="Xamarin.Essentials" Version="1.7.2" />
<!-- Xamarin.Forms -->
<PackageVersion Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageVersion Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2401" />
<PackageVersion Include="Xam.Plugins.Forms.ImageCircle" Version="3.1.1.1-beta" />
<!-- NUnit & NUnit.Xamarin & Moq -->
<PackageVersion Include="NUnit" Version="3.13.2" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageVersion Include="nunit.xamarin" Version="3.6.1" />
<PackageVersion Include="PCLStorage" Version="1.0.2" />
<PackageVersion Include="Moq" Version="4.16.1" />
<!-- NUnit & NUnit.Xamarin & Moq -->
<PackageVersion Include="NUnit" Version="3.13.3" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageVersion Include="nunit.xamarin" Version="3.6.1" />
<PackageVersion Include="PCLStorage" Version="1.0.2" />
<PackageVersion Include="Moq" Version="4.17.2" />
<!-- NLog -->
<PackageVersion Include="NLog" Version="4.7.13" />
<PackageVersion Include="NLog.Extensions.Logging" Version="1.7.4" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="4.14.0" />
<!-- NLog -->
<PackageVersion Include="NLog" Version="4.7.15" />
<PackageVersion Include="NLog.Extensions.Logging" Version="1.7.4" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="4.14.0" />
<PackageVersion Include="AspNetCore2.NETStandard.NLog.Web.AspNetCore" Version="4.14.0" />
<!-- ReactiveUI -->
<PackageVersion Include="System.Reactive" Version="5.0.0" />
<PackageVersion Include="Splat" Version="14.1.17" />
<PackageVersion Include="DynamicData" Version="7.4.11" />
<PackageVersion Include="ReactiveUI" Version="17.1.17" />
<!--<PackageVersion Include="ReactiveUI.Fody" Version="17.1.17" /> -->
<PackageVersion Include="ReactiveUI.XamForms" Version="17.1.17" />
<PackageVersion Include="ReactiveUI.AndroidX" Version="17.1.17" />
<!-- ReactiveUI -->
<PackageVersion Include="System.Reactive" Version="5.0.0" />
<PackageVersion Include="Splat" Version="14.2.8" />
<PackageVersion Include="DynamicData" Version="7.6.7" />
<PackageVersion Include="ReactiveUI" Version="18.0.7" />
<!--<PackageVersion Include="ReactiveUI.Fody" Version="17.1.50" /> -->
<PackageVersion Include="ReactiveUI.XamForms" Version="18.0.7" />
<PackageVersion Include="ReactiveUI.AndroidX" Version="18.0.7" />
<!-- SkiaSharp & HarfBuzzSharp -->
<PackageVersion Include="HarfBuzzSharp" Version="2.8.2-preview.179" />
<PackageVersion Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2-preview.179" />
<PackageVersion Include="SkiaSharp" Version="2.88.0-preview.179" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.179" />
<!-- SkiaSharp & HarfBuzzSharp -->
<PackageVersion Include="HarfBuzzSharp" Version="2.8.2-preview.254" />
<PackageVersion Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2-preview.254" />
<PackageVersion Include="SkiaSharp" Version="2.88.0-preview.254" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.0-preview.254" />
<!-- AutoMapper -->
<PackageVersion Include="AutoMapper" Version="10.1.1" />
<PackageVersion Include="AutoMapper.Collection" Version="7.0.1" />
<PackageVersion Include="AutoMapper.Collection.EntityFrameworkCore" Version="7.1.3" />
<PackageVersion Include="AutoMapper.Extensions.ExpressionMapping" Version="4.1.3" />
<PackageVersion Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
<!-- AutoMapper -->
<PackageVersion Include="AutoMapper" Version="10.1.1" />
<PackageVersion Include="AutoMapper.Collection" Version="7.0.1" />
<PackageVersion Include="AutoMapper.Collection.EntityFrameworkCore" Version="7.1.3" />
<PackageVersion Include="AutoMapper.Extensions.ExpressionMapping" Version="4.1.5" />
<PackageVersion Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
<!-- QRCode -->
<!--<PackageVersion Include="QRCoder" Version="1.4.2" />-->
<PackageVersion Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1" />
<!-- QRCode -->
<!--<PackageVersion Include="QRCoder" Version="1.4.2" />-->
<PackageVersion Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1" />
<!-- NotifyIcon -->
<PackageVersion Include="NotifyIcon.Base" Version="1.0.5.1" />
<!--<PackageVersion Include="NotifyIcon.Linux" Version="1.0.5.1" />-->
<!--<PackageVersion Include="NotifyIcon.Mac" Version="1.0.5.1" />-->
<PackageVersion Include="NotifyIcon.Windows" Version="1.0.5.1" />
<!--<PackageVersion Include="GtkSharp" Version="3.24.24.34" />-->
<!-- NotifyIcon -->
<PackageVersion Include="NotifyIcon.Base" Version="1.0.5.1" />
<!--<PackageVersion Include="NotifyIcon.Linux" Version="1.0.5.1" />-->
<!--<PackageVersion Include="NotifyIcon.Mac" Version="1.0.5.1" />-->
<PackageVersion Include="NotifyIcon.Windows" Version="1.0.5.1" />
<!--<PackageVersion Include="GtkSharp" Version="3.24.24.34" />-->
<!-- Compression -->
<PackageVersion Include="SharpZipLib" Version="1.3.3" />
<PackageVersion Include="Squid-Box.SevenZipSharp.Lite" Version="1.5.0.366" />
<PackageVersion Include="ZstdNet" Version="1.4.5" />
<!-- Compression -->
<PackageVersion Include="SharpZipLib" Version="1.3.3" />
<PackageVersion Include="Squid-Box.SevenZipSharp.Lite" Version="1.5.0.366" />
<PackageVersion Include="ZstdNet" Version="1.4.5" />
<!-- Algorithm -->
<PackageVersion Include="Crc32.NET" Version="1.2.0" />
<PackageVersion Include="gfoidl.Base64" Version="1.1.1" />
<!-- Algorithm -->
<PackageVersion Include="Crc32.NET" Version="1.2.0" />
<PackageVersion Include="gfoidl.Base64" Version="1.1.1" />
<!--Command Line Tools-->
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta1.21308.1" />
<!--Command Line Tools-->
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta3.22114.1" />
<PackageVersion Include="System.CommandLine.NamingConventionBinder" Version="2.0.0-beta3.22114.1" />
<!-- Pinyin -->
<PackageVersion Include="TinyPinyin.Net" Version="1.0.2" />
<!-- Pinyin -->
<PackageVersion Include="TinyPinyin.Net" Version="1.0.2" />
<PackageVersion Include="XAB.TinyPinyin" Version="2.0.4.4" />
<!-- Win32/Windows -->
<PackageVersion Include="TaskScheduler" Version="2.10.0" />
<!-- Win32/Windows -->
<PackageVersion Include="TaskScheduler" Version="2.10.1" />
<!-- Swagger -->
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<!-- Swagger -->
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.3.1" />
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.3.1" />
<PackageVersion Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.3.1" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore" Version="6.3.0" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore.Annotations" Version="6.3.0" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore.Newtonsoft" Version="6.3.0" />
<!-- Pay -->
<!--<PackageVersion Include="AlipaySDKNet.Standard" Version="4.6.109" />-->
<!-- Pay -->
<!--<PackageVersion Include="AlipaySDKNet.Standard" Version="4.6.109" />-->
<!-- Excel -->
<PackageVersion Include="NPOI" Version="2.5.5" />
<!-- Excel -->
<PackageVersion Include="NPOI" Version="2.5.5" />
<!-- Github API -->
<PackageVersion Include="Octokit" Version="0.50.0" />
<!-- Github API -->
<PackageVersion Include="Octokit" Version="0.50.0" />
<!-- ORM -->
<PackageVersion Include="sqlite-net-pcl" Version="1.8.116" />
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.0.7" />
<!-- ORM -->
<PackageVersion Include="sqlite-net-pcl" Version="1.8.116" />
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.1.0-pre20220318192836" />
<!-- MonoMac(NETSTANDARD) -->
<PackageVersion Include="MonoMac.NetStandard" Version="0.0.4" />
<!-- MonoMac(NETSTANDARD) -->
<PackageVersion Include="MonoMac.NetStandard" Version="0.0.4" />
<!-- .NET Compat -->
<PackageVersion Include="OperatingSystem2" Version="1.4.3" />
<PackageVersion Include="JustArchiNET.Madness" Version="3.2.1" />
<!-- .NET Compat -->
<PackageVersion Include="OperatingSystem2" Version="1.4.3" />
<PackageVersion Include="JustArchiNET.Madness" Version="3.5.2" />
<!-- Serialize -->
<PackageVersion Include="MessagePack" Version="2.3.85" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
<!-- Serialize -->
<PackageVersion Include="MessagePack" Version="2.3.85" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
<!-- Html Parser -->
<PackageVersion Include="HtmlAgilityPack" Version="1.11.42" />
<!-- Html Parser -->
<PackageVersion Include="HtmlAgilityPack" Version="1.11.42" />
<!-- Clipboard -->
<PackageVersion Include="TextCopy" Version="6.1.0" />
<!-- Clipboard -->
<PackageVersion Include="TextCopy" Version="6.1.0" />
<!-- Nito.* -->
<PackageVersion Include="Nito.Comparers" Version="6.2.2" />
<!--<PackageVersion Include="Nito.Disposables" Version="2.2.1" />-->
<!-- Nito.* -->
<PackageVersion Include="Nito.Comparers" Version="6.2.2" />
<!--<PackageVersion Include="Nito.Disposables" Version="2.2.1" />-->
<!-- Valve Data File -->
<PackageVersion Include="Gameloop.Vdf" Version="0.6.1" />
<!-- Valve Data File -->
<!--<PackageVersion Include="Gameloop.Vdf" Version="0.6.1" />-->
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
<!-- WebSocket -->
<PackageVersion Include="Fleck" Version="1.2.0" />
<!-- WebSocket -->
<PackageVersion Include="Fleck" Version="1.2.0" />
<!-- DNS -->
<PackageVersion Include="DnsClient" Version="1.6.0" />
<!-- DNS -->
<PackageVersion Include="DnsClient" Version="1.6.0" />
<!-- Cryptographic Algorithms & Protocols -->
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
<!-- Cryptographic Algorithms & Protocols -->
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
<!-- Resilience & Transient Fault Handling -->
<PackageVersion Include="Polly" Version="7.2.3" />
<!-- Resilience & Transient Fault Handling -->
<PackageVersion Include="Polly" Version="7.2.3" />
<!--Avalonia Start-->
<PackageVersion Include="Avalonia" Version="0.10.12" />
<PackageVersion Include="Avalonia.Desktop" Version="0.10.12" />
<PackageVersion Include="Avalonia.Skia" Version="0.10.12" />
<PackageVersion Include="Avalonia.Diagnostics" Version="0.10.12" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="0.10.12" />
<!--<PackageVersion Include="Avalonia.Direct2D1" Version="0.10.12" />-->
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="0.10.12" />
<PackageVersion Include="Avalonia.Xaml.Behaviors" Version="0.10.12" />
<!--<PackageVersion Include="Avalonia.AvaloniaEdit" Version="0.10.4" />-->
<!--<PackageVersion Include="CefNet.Avalonia" Version="93.1.21240.857" />-->
<!--<PackageVersion Include="LibVLCSharp.Avalonia" Version="3.5.1" />-->
<!--<PackageVersion Include="FluentAvaloniaUI" Version="1.1.8" />-->
<PackageVersion Include="JumpLists.Win32.Avalonia" Version="1.0.0" />
<!--Avalonia End-->
<!--Avalonia Start-->
<PackageVersion Include="Avalonia" Version="0.10.13" />
<PackageVersion Include="Avalonia.Desktop" Version="0.10.13" />
<PackageVersion Include="Avalonia.Skia" Version="0.10.13" />
<PackageVersion Include="Avalonia.Diagnostics" Version="0.10.13" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="0.10.13" />
<!--<PackageVersion Include="Avalonia.Direct2D1" Version="0.10.13" />-->
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="0.10.13" />
<PackageVersion Include="Avalonia.Xaml.Behaviors" Version="0.10.13.3" />
<!--<PackageVersion Include="Avalonia.AvaloniaEdit" Version="0.10.12.2" />-->
<!--<PackageVersion Include="CefNet.Avalonia" Version="93.1.21240.857" />-->
<!--<PackageVersion Include="LibVLCSharp.Avalonia" Version="3.5.1" />-->
<!--<PackageVersion Include="FluentAvaloniaUI" Version="1.3.0" />-->
<PackageVersion Include="JumpLists.Win32.Avalonia" Version="1.0.0" />
<!--Avalonia End-->
<!-- Xamarin.Android -->
<PackageVersion Include="Xamarin.Google.Dagger" Version="2.39.1" />
<PackageVersion Include="Xamarin.Google.MLKit.BarcodeScanning" Version="116.1.2.3" />
<PackageVersion Include="Plugin.CurrentActivity" Version="2.1.0.4" />
<PackageVersion Include="de.hdodenhof.circleimageview" Version="3.1.0" />
<PackageVersion Include="Square.OkHttp3" Version="4.9.2" />
<PackageVersion Include="Square.Picasso" Version="2.71828.0" />
<!--<PackageVersion Include="LeakCanaryBinding" Version="1.5.1.1" />-->
<!--<PackageVersion Include="TencentOpenApiSDK.Android" Version="3.5.4.11" />-->
<!-- Xamarin.Android -->
<PackageVersion Include="Xamarin.Build.Download" Version="0.11.1" />
<PackageVersion Include="Xamarin.Google.Dagger" Version="2.39.1" />
<PackageVersion Include="Xamarin.Google.MLKit.BarcodeScanning" Version="116.1.2.5" />
<PackageVersion Include="Plugin.CurrentActivity" Version="2.1.0.4" />
<PackageVersion Include="de.hdodenhof.circleimageview" Version="3.1.0.4" />
<PackageVersion Include="Square.OkHttp3" Version="4.9.3" />
<PackageVersion Include="Square.Picasso" Version="2.71828.0" />
<!--<PackageVersion Include="LeakCanaryBinding" Version="1.5.1.1" />-->
<!--<PackageVersion Include="TencentOpenApiSDK.Android" Version="3.5.4.11" />-->
<PackageVersion Include="XAB.FlexboxLayout" Version="3.0.0.2" />
<!-- Xamarin.AndroidX -->
<PackageVersion Include="Xamarin.AndroidX.Migration" Version="1.0.8" />
<PackageVersion Include="Xamarin.AndroidX.AppCompat" Version="1.3.1.4" />
<PackageVersion Include="Xamarin.AndroidX.Emoji.AppCompat" Version="1.1.0.5" />
<PackageVersion Include="Xamarin.AndroidX.Fragment" Version="1.3.6.4" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.Fragment" Version="2.3.5.3" />
<PackageVersion Include="Xamarin.AndroidX.RecyclerView" Version="1.2.1.4" />
<PackageVersion Include="Xamarin.Google.Android.Material" Version="1.4.0.5" />
<PackageVersion Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.6" />
<PackageVersion Include="Xamarin.AndroidX.ConstraintLayout" Version="2.1.2.1" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.UI" Version="2.3.5.3" />
<PackageVersion Include="Xamarin.AndroidX.ViewPager2" Version="1.0.0.13" />
<PackageVersion Include="Xamarin.AndroidX.Activity" Version="1.4.0.1" />
<PackageVersion Include="Xamarin.AndroidX.Biometric" Version="1.1.0.6" />
<PackageVersion Include="Xamarin.AndroidX.ExifInterface" Version="1.3.3.3" />
<PackageVersion Include="Xamarin.AndroidX.Legacy.Support.Core.UI" Version="1.0.0.12" />
<PackageVersion Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.4.0.1" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Camera2" Version="1.0.2.2" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Lifecycle" Version="1.0.2.2" />
<PackageVersion Include="Xamarin.AndroidX.Camera.View" Version="1.0.0.5-alpha20" />
<!--<PackageVersion Include="Xamarin.AndroidX.Window" Version="1.0.0.3-beta02" />-->
<!-- V2Ray -->
<PackageVersion Include="XAB.AndroidLibV2rayLite" Version="1.0.0.1" />
<!--<PackageVersion Include="Karamunting.KotlinX.Coroutines.Core" Version="1.4.2" />-->
<PackageVersion Include="Xamarin.KotlinX.Coroutines.Core" Version="1.6.0.1" />
<PackageVersion Include="Xamarin.KotlinX.Coroutines.Android" Version="1.6.0.1" />
<PackageVersion Include="Xamarin.Android.ReactiveX.RxJava3.RxJava" Version="3.1.4.1" />
<!-- Xamarin.iOS -->
<PackageVersion Include="Toast.iOS" Version="1.2.0" />
<!-- Xamarin.AndroidX -->
<PackageVersion Include="Xamarin.AndroidX.Migration" Version="1.0.8" />
<PackageVersion Include="Xamarin.AndroidX.AppCompat" Version="1.4.1.1" />
<PackageVersion Include="Xamarin.AndroidX.Emoji.AppCompat" Version="1.1.0.8" />
<PackageVersion Include="Xamarin.AndroidX.Fragment" Version="1.4.1.1" />
<PackageVersion Include="Xamarin.AndroidX.RecyclerView" Version="1.2.1.6" />
<PackageVersion Include="Xamarin.Google.Android.Material" Version="1.5.0.2" />
<PackageVersion Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.8" />
<PackageVersion Include="Xamarin.AndroidX.ConstraintLayout" Version="2.1.3.1" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.UI" Version="2.4.1.1" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.Fragment" Version="2.4.1.2" />
<PackageVersion Include="Xamarin.AndroidX.ViewPager2" Version="1.0.0.15" />
<PackageVersion Include="Xamarin.AndroidX.Activity" Version="1.4.0.2" />
<PackageVersion Include="Xamarin.AndroidX.Biometric" Version="1.1.0.9" />
<PackageVersion Include="Xamarin.AndroidX.ExifInterface" Version="1.3.3.5" />
<PackageVersion Include="Xamarin.AndroidX.Legacy.Support.Core.UI" Version="1.0.0.14" />
<PackageVersion Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.4.1.1" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Camera2" Version="1.0.2.4" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Lifecycle" Version="1.0.2.4" />
<PackageVersion Include="Xamarin.AndroidX.Camera.View" Version="1.0.0.5-alpha20" />
<!--<PackageVersion Include="Xamarin.AndroidX.Window" Version="1.0.0.3-beta02" />-->
</ItemGroup>
<!-- Xamarin.iOS -->
<PackageVersion Include="Toast.iOS" Version="1.2.0" />
<!-- UWP -->
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
<!-- Code Style -->
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.406" />
</ItemGroup>
</Project>
+18 -13
View File
@@ -4,7 +4,7 @@
English | [简体中文](./README.md)
「Steam++」is a toolkit that contains a variety of Steam tools, most of which require you to download and install Steam in order to use them.
"Steam++" is an open source cross-platform multi-purpose game toolkit, most of its features require you to download and install Steam to use it.
![Release Download](https://img.shields.io/github/downloads/rmbadmin/SteamTools/total?style=flat-square)
[![Release Version](https://img.shields.io/github/v/release/rmbadmin/SteamTools?style=flat-square)](https://github.com/rmbadmin/SteamTools/releases/latest)
@@ -32,19 +32,24 @@ English | [简体中文](./README.md)
- [GitHub Releases](https://github.com/BeyondDimension/SteamTools/releases)
- [Gitee Releases](https://gitee.com/rmbgame/SteamTools/releases)
- [Official WebSite](https://steampp.net)
- [![Microsoft Store](./resources/MSStore_English.png)](https://www.microsoft.com/store/apps/9MTCFHS560NG)
- [Arch Linux Package](https://aur.archlinux.org/packages/steam%2B%2B-bin)(By [zhanghua000](https://github.com/zhanghua000))
## ✨ Functions
1. Local reverse proxy for Steam's community webpage to enable normal access in **the Chinese Mainland, Mainland of China**
2. Quickly switch the Steam account that the current PC has remembered to log into
- This feature is to read the local user login records stored under the Steam path to directly display the operation, you can switch between multiple accounts without re-entering passwords and tokens.
3. Achievement stat modifications for Steam games
- Function reference SteamAchievementManager for secondary development, modified the game list loading and operation ease of use.
4. Steam Local Two-Step Authenticator
- The function reference [WinAuth](https://github.com/winauth/winauth) is developed to enable you to view your token without launching the mobile version of Steam App, similar function software are [WinAuth](https://github.com/winauth/winauth), [SteamDesktopAuthenticator](https://github.com/Jessecar96/SteamDesktopAuthenticator).
5. Some game tools
- Currently there is a forced game borderless windowing.
1. Network Acceleration (Support Windows / Linux / macOS / Android)
- Make the Steam community, Github, Google reCAPTCHA, Pixiv, Discord, Twitch and other domestic hard-to-access pages accessible properly.
- Functions similar to [Steamcommunity 302](https://www.dogfight360.com/blog/686/), using [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy) open source project for local anti-generation.
2. Script Configuration (Windows / Linux / macOS Only)
- Some JS scripts are injected into web pages through an acceleration service that intercepts web requests, providing functionality similar to that of a web plugin.
3. Account Switch (Windows / Linux / macOS Only)
- Switch between Steam accounts that are already logged in on the current PC with one click, and manage features such as sorting your home shared library.
4. Inventory Management (Windows / Linux / macOS Only)
- Lets you manage your Steam game inventory directly, not only by downloading older Steam games, but also by managing Steam game achievements directly, supporting unlocked achievements and unlocked achievements.
5. Local Authentication (Support Windows / Linux / macOS / Android)
- Let your cell phone token unified save in the computer, currently only support Steam token, later will develop support more token types with cloud synchronization token.
6. ArchiSteamFarm (Support Windows / Linux / macOS / Android)
- Integration with [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm) provides functions such as hanging and dropping Steam Collectible Cards within the app.
7. Game Tools (Windows Only)
- Force game windows to use borderless windowing
<!--Prerequisites Microsoft Visual C++ 2015-2019 Redistributable [64 bit](https://aka.ms/vs/16/release/vc_redist.x64.exe) / [32 bit](https://aka.ms/vs/16/release/vc_redist.x86.exe)-->
## 🖥 Supported Operating Systems
@@ -57,7 +62,7 @@ OS | Version | Architectures
[Windows Server][Windows-Server] | 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
**\*** Windows 7 SP1 is supported with [Extended Security Updates](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) installed.
**\*** Microsoft Store/Desktop Bridge Version 1809+
**\*** Microsoft Store(Desktop Bridge) Version 1809+
[Windows-client]: https://www.microsoft.com/windows/
[Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet
@@ -117,7 +122,7 @@ OS | Version | Architectures
OS | Version | Architectures |
------------------------------|---------------------------|-------------------|
[macOS][macOS] | 10.14+ | x64 |
[macOS][macOS] | 10.15+ | x64, Arm64 |
[macOS]: https://support.apple.com/macos
+20 -20
View File
@@ -4,7 +4,7 @@
[English](./README.en.md) | 简体中文
「Steam++」是一个包含多种Steam工具功能的工具箱,此工具的大部分功能都是需要您下载安装Steam才能使用。
「Steam++」是一个开源跨平台的多功能游戏工具箱,此工具的大部分功能都是需要您下载安装 Steam 才能使用。
![Release Download](https://img.shields.io/github/downloads/BeyondDimension/SteamTools/total?style=flat-square)
[![Release Version](https://img.shields.io/github/v/release/BeyondDimension/SteamTools?style=flat-square)](https://github.com/BeyondDimension/SteamTools/releases/latest)
@@ -33,26 +33,24 @@
- [GitHub Releases](https://github.com/BeyondDimension/SteamTools/releases)
- [Gitee Releases](https://gitee.com/rmbgame/SteamTools/releases)
- [Official WebSite](https://steampp.net)
- [![Microsoft Store](./resources/MSStore_English.png)](https://www.microsoft.com/store/apps/9MTCFHS560NG)
- [Arch Linux Package](https://aur.archlinux.org/packages/steam%2B%2B-bin)(By [zhanghua000](https://github.com/zhanghua000))
## ✨ 功能
1. 反代 Steam 的社区网页使其能正常访问
- 功能类似羽翼城大佬的 [steamcommunity_302](https://www.dogfight360.com/blog/686/)
- 使用 [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy) 开源项目进行本地反代,使国内用户可以正常访问 Steam 社区页
- 相比 **302工具** 具有更快的启动速度,以及支持简单的脚本注入(还顺便支持了Pixiv、Discord、Twitch等网站的反代支持)
2. 快速切换当前设备已记住登陆的 Steam 账号
- 该功能是读取 Steam 路径下存储的本地用户登录记录直接展示操作,可以多账号切换无需重新输入密码和令牌
3. Steam游戏的成就统计管理功能
- 功能参考 [SteamAchievementManager](https://github.com/gibbed/SteamAchievementManager) 进行二次开发,修改了游戏列表的加载和操作易用性
4. Steam本地两步身份验证器
- 功能参考 [WinAuth](https://github.com/winauth/winauth) 开发,可以使您不用启动移动版 Steam App 也能查看您的令牌
- 本地令牌交易市场报价确认
- 功能类似的软件例如:
- [WinAuth](https://github.com/winauth/winauth)
- [SteamDesktopAuthenticator](https://github.com/Jessecar96/SteamDesktopAuthenticator)
5. 其他游戏工具
- 目前已有强制游戏无边框窗口化
1. 网络加速 (Support Windows / Linux / macOS / Android)
- 使 Steam 社区、Github、谷歌验证码、Pixiv、Discord、Twitch 等国内难以访问的网页正常访问。
- 功能类似 [Steamcommunity 302](https://www.dogfight360.com/blog/686/) ,使用 [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy) 开源项目进行本地反代。
2. 脚本配置 (Windows / Linux / macOS Only)
- 通过加速服务拦截网络请求将一些 JS 脚本注入在网页中,提供类似网页插件的功能。
3. 账号切换 (Windows / Linux / macOS Only)
- 一键切换已在当前 PC 上登录过的 Steam 账号,与管理家庭共享库排序等功能。
4. 库存管理 (Windows / Linux / macOS Only)
- 让您直接管理到 Steam 游戏库存,不仅能够下载老版本的 Steam 游戏,也能够对 Steam 游戏成就进行直接管理,支持解锁成就以及反解锁成就。
5. 本地令牌 (Support Windows / Linux / macOS / Android)
- 让您的手机令牌统一保存在电脑中,目前仅支持 Steam 令牌,后续会开发支持更多的令牌种类与云同步令牌。
6. 自动挂卡 (Support Windows / Linux / macOS / Android)
- 集成 [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm) 在应用内提供 挂机掉落 Steam 集换式卡牌 等功能。
7. 游戏工具 (Windows Only)
- 强制游戏窗口使用无边框窗口化
<!--发布配置SelfContained=true时会自动打包VC++相关程序集-->
<!--先决条件 Microsoft Visual C++ 2015-2019 Redistributable [64 位](https://aka.ms/vs/16/release/vc_redist.x64.exe) / [32 位](https://aka.ms/vs/16/release/vc_redist.x86.exe)-->
@@ -66,7 +64,7 @@ OS | Version | Architectures
[Windows Server][Windows-Server] | 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
**\*** Windows 7 SP1 is supported with [Extended Security Updates](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) installed.
**\*** Microsoft Store/Desktop Bridge Version 1809+
**\*** Microsoft Store(Desktop Bridge) Version 1809+
[Windows-client]: https://www.microsoft.com/windows/
[Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet
@@ -126,10 +124,12 @@ OS | Version | Architectures
OS | Version | Architectures |
------------------------------|---------------------------|-------------------|
[macOS][macOS] | 10.14+ | x64 |
[macOS][macOS] | 10.15+ | x64, Arm64 |
[macOS]: https://support.apple.com/macos
### Android
OS | Version | Architectures |
------------------------------|-------------------------|--------------------------------------------------------------------|
[Android][Android] | 5.0(API 21)+ | [x64][Android-x64], [Arm64][Android-Arm64], [Arm32][Android-Arm32] |
+3 -5
View File
@@ -16,18 +16,15 @@
"src\\Avalonia.Win32\\Avalonia.Win32.csproj",
"src\\Avalonia.X11\\Avalonia.X11.csproj",
"src\\Common.AreaLib\\Common.AreaLib.csproj",
"src\\Common.ClientLib.Droid\\Common.ClientLib.Droid.csproj",
"src\\Common.ClientLib.iOS\\Common.ClientLib.iOS.csproj",
"src\\Common.ClientLib\\Common.ClientLib.csproj",
"src\\Common.CoreLib\\Common.CoreLib.csproj",
"src\\Common.PinyinLib\\Common.PinyinLib.csproj",
"src\\Common.PinyinLib.ChnCharInfo\\Common.PinyinLib.ChnCharInfo.csproj",
"src\\Repositories.sqlite-net-pcl\\Repositories.sqlite-net-pcl.csproj",
"src\\ST.Client.Android\\ST.Client.Android.csproj",
"src\\ST.Client.Desktop.Linux\\ST.Client.Linux.csproj",
"src\\ST.Client.Mobile.Droid.App\\ST.Client.Android.App.csproj",
"src\\ST.Client.XamarinForms\\ST.Client.XamarinForms.csproj",
"src\\ST.Client.Desktop.Avalonia\\ST.Client.Avalonia.csproj",
"src\\ST.Client.Desktop.Avalonia.App\\ST.Client.Avalonia.App.csproj",
"src\\ST.Client.iOS\\ST.Client.iOS.csproj",
"src\\ST.Client\\ST.Client.csproj",
"src\\ST.Services.CloudService.Models\\ST.Services.CloudService.Models.csproj",
"src\\ST.Services.CloudService.ViewModels\\ST.Services.CloudService.ViewModels.csproj",
@@ -38,6 +35,7 @@
"src\\ST.Tools.OpenSourceLibraryList\\ST.Tools.OpenSourceLibraryList.csproj",
"src\\ST.Tools.Translate\\ST.Tools.Translate.csproj",
"src\\ST\\ST.csproj",
"src\\ST.Client.ResSecrets\\ST.Client.ResSecrets.csproj",
"tests\\Common.UnitTest.Droid.App\\ST.Client.UnitTest.Droid.App.csproj",
"tests\\Common.UnitTest.Droid\\ST.Client.UnitTest.Droid.csproj",
"tests\\Common.UnitTest\\Common.UnitTest.csproj",
+6 -1
View File
@@ -16,10 +16,11 @@
"src\\Avalonia.Win32\\Avalonia.Win32.csproj",
"src\\Avalonia.X11\\Avalonia.X11.csproj",
"src\\Common.AreaLib\\Common.AreaLib.csproj",
"src\\Common.ClientLib.Droid\\Common.ClientLib.Droid.csproj",
"src\\Common.ClientLib.iOS\\Common.ClientLib.iOS.csproj",
"src\\Common.ClientLib\\Common.ClientLib.csproj",
"src\\Common.CoreLib\\Common.CoreLib.csproj",
"src\\Common.PinyinLib\\Common.PinyinLib.csproj",
"src\\Common.PinyinLib.CFStringTransform\\Common.PinyinLib.CFStringTransform.csproj",
"src\\Repositories.sqlite-net-pcl\\Repositories.sqlite-net-pcl.csproj",
"src\\ST.Client.Android\\ST.Client.Android.csproj",
"src\\ST.Client.Desktop.Mac\\ST.Client.Mac.csproj",
@@ -38,6 +39,10 @@
"src\\ST.Tools.OpenSourceLibraryList\\ST.Tools.OpenSourceLibraryList.csproj",
"src\\ST.Tools.Translate\\ST.Tools.Translate.csproj",
"src\\ST\\ST.csproj",
"src\\ST.Client.ResSecrets\\ST.Client.ResSecrets.csproj",
"src\\ST.Client.iOS.ResSecrets\\ST.Client.iOS.ResSecrets.csproj",
"src\\ST.Client.Android.ResSecrets\\ST.Client.Android.ResSecrets.csproj",
"src\\ST.Client.Mac.ResSecrets\\ST.Client.Mac.ResSecrets.csproj",
"tests\\Common.UnitTest.Droid.App\\ST.Client.UnitTest.Droid.App.csproj",
"tests\\Common.UnitTest.Droid\\ST.Client.UnitTest.Droid.csproj",
"tests\\Common.UnitTest\\Common.UnitTest.csproj",
+285 -32
View File
@@ -152,8 +152,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Github", "_Github", "{B114
.github\workflows\xamarin.yml = .github\workflows\xamarin.yml
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.ClientLib.Droid", "src\Common.ClientLib.Droid\Common.ClientLib.Droid.csproj", "{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.ClientLib.iOS", "src\Common.ClientLib.iOS\Common.ClientLib.iOS.csproj", "{4658B02A-CB1A-4561-AD9C-3B3FF969D7F0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.UnitTest.Droid", "tests\Common.UnitTest.Droid\ST.Client.UnitTest.Droid.csproj", "{80E6762E-AB43-41E2-BDB4-7A3E24713977}"
@@ -166,7 +164,29 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.UnitTest.Resource
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{E84FF7BC-FC2A-424E-8780-7DA9B487E23F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.Internals", "src\Avalonia.Skia.Internals\Avalonia.Skia.Internals.csproj", "{47C151DA-D2B1-43F4-A04E-B454E2134852}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.Internals", "src\Avalonia.Skia.Internals\Avalonia.Skia.Internals.csproj", "{47C151DA-D2B1-43F4-A04E-B454E2134852}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Bindings", "Bindings", "{80EBD601-28AC-4840-B9B8-E6064816A443}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Android.V2Ray", "src\ST.Client.Android.V2Ray\ST.Client.Android.V2Ray.csproj", "{4A79264D-5BF5-4F89-8066-44E154BF557F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Gameloop.Vdf", "references\Gameloop.Vdf\Gameloop.Vdf\Gameloop.Vdf.csproj", "{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Android.Shadowsocks", "src\ST.Client.Android.Shadowsocks\ST.Client.Android.Shadowsocks.csproj", "{920EF29F-406F-43A9-B002-29DD6B0B4FBF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Android.App.Modern", "src\ST.Client.Android.App.Modern\ST.Client.Android.App.Modern.csproj", "{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ResSecrets", "ResSecrets", "{17667B53-1A09-45A6-855A-0F07F9AE044F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Android.ResSecrets", "src\ST.Client.Android.ResSecrets\ST.Client.Android.ResSecrets.csproj", "{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.ResSecrets", "src\ST.Client.ResSecrets\ST.Client.ResSecrets.csproj", "{089D4418-975B-455D-9AE1-B9DEC20FF4B1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ST.Client.iOS.ResSecrets", "src\ST.Client.iOS.ResSecrets\ST.Client.iOS.ResSecrets.csproj", "{872B65EB-E9DF-4357-B541-DD4A39B281A0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ST.Client.Mac.ResSecrets", "src\ST.Client.Mac.ResSecrets\ST.Client.Mac.ResSecrets.csproj", "{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ST.Client.Windows.ResSecrets", "src\ST.Client.Windows.ResSecrets\ST.Client.Windows.ResSecrets.csproj", "{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -1586,34 +1606,6 @@ Global
{29DE5086-0690-4AE7-9BA9-840F54B249DC}.Release|x64.Build.0 = Release|Any CPU
{29DE5086-0690-4AE7-9BA9-840F54B249DC}.Release|x86.ActiveCfg = Release|Any CPU
{29DE5086-0690-4AE7-9BA9-840F54B249DC}.Release|x86.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|ARM.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|ARM64.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|iPhone.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|x64.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|x64.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|x86.ActiveCfg = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Debug|x86.Build.0 = Debug|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|Any CPU.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|ARM.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|ARM.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|ARM64.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|ARM64.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|iPhone.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|iPhone.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|x64.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|x64.Build.0 = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|x86.ActiveCfg = Release|Any CPU
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C}.Release|x86.Build.0 = Release|Any CPU
{4658B02A-CB1A-4561-AD9C-3B3FF969D7F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4658B02A-CB1A-4561-AD9C-3B3FF969D7F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4658B02A-CB1A-4561-AD9C-3B3FF969D7F0}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -1824,6 +1816,258 @@ Global
{47C151DA-D2B1-43F4-A04E-B454E2134852}.Release|x64.Build.0 = Release|Any CPU
{47C151DA-D2B1-43F4-A04E-B454E2134852}.Release|x86.ActiveCfg = Release|Any CPU
{47C151DA-D2B1-43F4-A04E-B454E2134852}.Release|x86.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|ARM.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|ARM.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|ARM64.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|iPhone.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|x64.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|x64.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Debug|x86.Build.0 = Debug|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|Any CPU.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|ARM.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|ARM.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|ARM64.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|ARM64.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|iPhone.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|iPhone.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|x64.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|x64.Build.0 = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|x86.ActiveCfg = Release|Any CPU
{4A79264D-5BF5-4F89-8066-44E154BF557F}.Release|x86.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|ARM.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|ARM.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|ARM64.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|iPhone.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|x64.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|x64.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|x86.ActiveCfg = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Debug|x86.Build.0 = Debug|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|Any CPU.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|ARM.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|ARM.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|ARM64.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|ARM64.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|iPhone.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|iPhone.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|x64.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|x64.Build.0 = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|x86.ActiveCfg = Release|Any CPU
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE}.Release|x86.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|ARM.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|ARM.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|ARM64.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|iPhone.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|x64.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|x64.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|x86.ActiveCfg = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Debug|x86.Build.0 = Debug|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|Any CPU.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|ARM.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|ARM.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|ARM64.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|ARM64.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|iPhone.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|iPhone.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|x64.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|x64.Build.0 = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|x86.ActiveCfg = Release|Any CPU
{920EF29F-406F-43A9-B002-29DD6B0B4FBF}.Release|x86.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|ARM.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|ARM.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|ARM64.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|iPhone.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|x64.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|x64.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|x86.ActiveCfg = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Debug|x86.Build.0 = Debug|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|Any CPU.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|ARM.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|ARM.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|ARM64.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|ARM64.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|iPhone.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|iPhone.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|x64.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|x64.Build.0 = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|x86.ActiveCfg = Release|Any CPU
{5E2ABB4A-FDD6-47B0-946D-FAAD31301B82}.Release|x86.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|ARM.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|ARM.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|ARM64.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|iPhone.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|x64.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|x64.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|x86.ActiveCfg = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Debug|x86.Build.0 = Debug|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|Any CPU.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|ARM.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|ARM.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|ARM64.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|ARM64.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|iPhone.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|iPhone.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|x64.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|x64.Build.0 = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|x86.ActiveCfg = Release|Any CPU
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277}.Release|x86.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|ARM.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|ARM.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|ARM64.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|iPhone.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|x64.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|x64.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|x86.ActiveCfg = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Debug|x86.Build.0 = Debug|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|Any CPU.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|ARM.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|ARM.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|ARM64.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|ARM64.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|iPhone.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|iPhone.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|x64.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|x64.Build.0 = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|x86.ActiveCfg = Release|Any CPU
{089D4418-975B-455D-9AE1-B9DEC20FF4B1}.Release|x86.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|ARM.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|ARM.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|ARM64.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|iPhone.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|x64.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|x64.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|x86.ActiveCfg = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Debug|x86.Build.0 = Debug|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|Any CPU.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|ARM.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|ARM.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|ARM64.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|ARM64.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|iPhone.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|iPhone.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|x64.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|x64.Build.0 = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|x86.ActiveCfg = Release|Any CPU
{872B65EB-E9DF-4357-B541-DD4A39B281A0}.Release|x86.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|ARM.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|ARM64.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|iPhone.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|x64.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|x64.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|x86.ActiveCfg = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Debug|x86.Build.0 = Debug|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|Any CPU.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|ARM.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|ARM.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|ARM64.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|ARM64.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|iPhone.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|iPhone.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|x64.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|x64.Build.0 = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|x86.ActiveCfg = Release|Any CPU
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}.Release|x86.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|ARM.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|ARM.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|ARM64.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|iPhone.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|x64.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|x64.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|x86.ActiveCfg = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Debug|x86.Build.0 = Debug|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|Any CPU.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|ARM.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|ARM.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|ARM64.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|ARM64.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|iPhone.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|iPhone.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|x64.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|x64.Build.0 = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|x86.ActiveCfg = Release|Any CPU
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1880,7 +2124,6 @@ Global
{E85E92BA-202F-42D3-8C5E-96DA452501B7} = {910D6A0F-42AB-4B65-B532-852E864EC006}
{21C392C5-AE41-421A-A127-1A03C4ACA2AD} = {673FF8CD-9E85-4FA1-ABFC-D1149675E138}
{29DE5086-0690-4AE7-9BA9-840F54B249DC} = {E448F863-4C9D-47A4-BC4A-4A1381B54DA4}
{3C7200C7-8C2D-46F0-BD7D-0A59D915B83C} = {83186945-EC14-4B3F-8C6F-B205AA184CA4}
{4658B02A-CB1A-4561-AD9C-3B3FF969D7F0} = {83186945-EC14-4B3F-8C6F-B205AA184CA4}
{80E6762E-AB43-41E2-BDB4-7A3E24713977} = {CC46B486-00D7-49E6-ABA3-FDF8F4868D2B}
{AD7B78B0-AE51-4FB7-9B11-4E22A2B538CA} = {CC46B486-00D7-49E6-ABA3-FDF8F4868D2B}
@@ -1888,6 +2131,16 @@ Global
{FB2CA9B4-71F1-48E8-B9AE-FF4375F4FE43} = {CC46B486-00D7-49E6-ABA3-FDF8F4868D2B}
{E84FF7BC-FC2A-424E-8780-7DA9B487E23F} = {910D6A0F-42AB-4B65-B532-852E864EC006}
{47C151DA-D2B1-43F4-A04E-B454E2134852} = {910D6A0F-42AB-4B65-B532-852E864EC006}
{80EBD601-28AC-4840-B9B8-E6064816A443} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{4A79264D-5BF5-4F89-8066-44E154BF557F} = {80EBD601-28AC-4840-B9B8-E6064816A443}
{DFC341E8-5290-428C-8D2B-6DE2AA163FFE} = {673FF8CD-9E85-4FA1-ABFC-D1149675E138}
{920EF29F-406F-43A9-B002-29DD6B0B4FBF} = {80EBD601-28AC-4840-B9B8-E6064816A443}
{17667B53-1A09-45A6-855A-0F07F9AE044F} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{68DD3E9C-A96C-4128-8D95-DCD65D1FA277} = {17667B53-1A09-45A6-855A-0F07F9AE044F}
{089D4418-975B-455D-9AE1-B9DEC20FF4B1} = {17667B53-1A09-45A6-855A-0F07F9AE044F}
{872B65EB-E9DF-4357-B541-DD4A39B281A0} = {17667B53-1A09-45A6-855A-0F07F9AE044F}
{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C} = {17667B53-1A09-45A6-855A-0F07F9AE044F}
{058F9955-8EFE-4BF3-A8F9-44C57B1F812E} = {17667B53-1A09-45A6-855A-0F07F9AE044F}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
RESX_NeutralResourcesLanguage = zh-Hans
+14 -10
View File
@@ -1,23 +1,27 @@
# 下载指南
- Desktop(桌面端)
- Windows
- 如果你使用 Intel、AMD 的 x64 芯片的 PC(较为**普遍**),则下载文件名中带有 **win_x64** 的文件
- 如果你已安装了 [ASP.NET Core Runtime 6.0.1](https://dotnet.microsoft.com/download/dotnet/6.0) 则下载文件名中带有 **fde** 的文件,可减少磁盘占用空间
- [在 Windows 上安装 .NET](https://docs.microsoft.com/en-us/dotnet/core/install/windows)
- 在 Windows 上不需要 Hosting Bundle 和 IIS support
- [下载安装程序并手动安装(aspnetcore-runtime-6.0.1-win-x64.exe)](https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-aspnetcore-6.0.1-windows-x64-installer)
- [使用 PowerShell 自动化安装](https://docs.microsoft.com/en-us/dotnet/core/install/windows?tabs=net60#install-with-powershell-automation)
- 如果你使用 Intel、AMD 的 x64(x86-64) 芯片的 PC,则下载文件名中带有 **win_x64** 的文件
- 如果你 **已安装** 了 [ASP.NET Core 运行时 6.0.4](https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0) 则下载文件名中带有 **fde(框架依赖)** 的文件
- 注意:是 《ASP.NET Core 运行时》 而不是 《.NET 桌面运行时》
- [在 Windows 上安装 .NET](https://docs.microsoft.com/zh-cn/dotnet/core/install/windows)
- 本程序在 Windows 上不需要 Hosting Bundle 和 IIS support
- [下载安装程序并手动安装(aspnetcore-runtime-6.0.4-win-x64.exe)](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-6.0.4-windows-x64-installer)
- [使用 PowerShell 自动化安装](https://docs.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net60#install-with-powershell-automation)
- macOS
- 如果你使用 Intel、AMD 的 x64 芯片的 Mac(较为**普遍**),则下载文件名中带有 **macos_x64** 的文件
- 如果你使用 ARM64 芯片的 Mac(较为**稀有**),例如 **M1**,则下载文件名中带有 **macos_arm64** 的文件
- 如果你使用 Intel 的 x64(x86-64) 芯片的 Mac,则下载文件名中带有 **macos_x64** 的文件
- 如果你使用 ARM64(Apple Silicon) 芯片的 Mac,例如 **Apple M1**,则下载文件名中带有 **macos_arm64** 的文件
- Linux
- 如果你使用 Intel、AMD 的 x64 芯片的 PC(较为**普遍**)则下载文件名中带有 **linux_x64** 的文件
- 如果你使用 ARM64 芯片的 PC(较为**稀有**)例如 **Raspberry Pi Model 3+**,则下载文件名中带有 **linux_arm64** 的文件
- 如果你使用 Intel、AMD 的 x64(x86-64) 芯片的 PC 则下载文件名中带有 **linux_x64** 的文件
- 如果你使用 ARM64 芯片的 PC 例如 **Raspberry Pi Model 3+**,则下载文件名中带有 **linux_arm64** 的文件
<!--
- Mobile(移动端)
- Android
- 如果你使用 ARM64 芯片的设备(较为**普遍**)则下载文件名中带有 **android_arm64_v8a** 的文件
- 如果你使用 ARM32 芯片的设备(较为**稀有**)通常为 **14** 年下半年之前生产的设备,则下载文件名中带有 **android_armeabi_v7a** 的文件
- 如果你使用 Intel、AMD 的 x64 芯片的设备(较为**稀有**)则下载文件名中带有 **android_x64** 的文件
-->
<!--
- 如果你使用 ARM64 芯片的 PC(极为**稀有**),例如 **Surface Pro X**,则下载文件名中带有 **win_x64** 的文件可通过 Win11 x86 模拟运行
+3 -2
View File
@@ -1,8 +1,9 @@
{
"msbuild-sdks": {
"MSBuild.Sdk.Extras": "3.0.44"
"MSBuild.Sdk.Extras": "3.0.44",
"Xamarin.Legacy.Sdk": "0.1.2-alpha6"
},
"sdk": {
"version": "6.0.101"
"version": "6.0.202"
}
}
+3 -3
View File
@@ -7,11 +7,11 @@
<key>CFBundleIdentifier</key>
<string>net.steampp.app</string>
<key>CFBundleShortVersionString</key>
<string>2.4.10</string>
<string>2.7.0</string>
<key>CFBundleVersion</key>
<string>2.4.10.0</string>
<string>2.7.0.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<string>10.15</string>
<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>
<key>CFBundleInfoDictionaryVersion</key>
+12 -18
View File
@@ -1,7 +1,7 @@
create_app_structure() {
APPNAME=$1
APPDIR="$APPNAME.app/Contents"
APPICONS="/Users/mossimo/bin/logo.icns"
APPICONS="${{ Steam++_IcnsFile }}"
if [ ! -d "$APPDIR" ]; then
echo "creating app structure $APPDIR"
@@ -33,19 +33,19 @@ emit_plist() {
<key>CFBundleIdentifier</key>
<string>net.steampp.app</string>
<key>CFBundleShortVersionString</key>
<string>2.6.7</string>
<string>${{ Steam++_ShortVersion }}</string>
<key>CFBundleVersion</key>
<string>2.6.7.0</string>
<string>${{ Steam++_Version }}</string>
<key>LSMinimumSystemVersion</key>
<string>10.14</string>
<string>10.15</string>
<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>$PLIST_APPNAME</string>
<string>${{ Steam++_RunName }}</string>
<key>CFBundleGetInfoString</key>
<string>$PLIST_APPNAME</string>
<string>${{ Steam++_RunName }}</string>
<key>CFBundleIconFile</key>
<string>$PLIST_APPNAME</string>
<key>CFBundlePackageType</key>
@@ -64,10 +64,10 @@ EOF
fi
}
cd "/Users/mossimo/bin"
cd "${{ Steam++_OutPutFilePath }}"
BINARYNAME="Steam++"
BINARYNAME="${{ Steam++_AppName }}"
echo "Building Avalonia demo..."
@@ -80,14 +80,8 @@ rm -rf "$APPDIR"
create_app_structure "$APPNAME"
emit_plist "$APPNAME" "$APPDIR" true
cd "$APPDIR/Frameworks"
mv -f "${{ Steam++_APPDIR }}" "$APPDIR/MacOS"
chmod +x "$APPDIR/MacOS/Steam++"
APPNAME="$BINARYNAME Helper"
APPDIR="$APPNAME.app/Contents"
create_app_structure "$APPNAME"
emit_plist "$APPNAME" "$APPDIR"
cp -R "../../../steampp/" "../MacOS"
ln -s "../../MacOS" "Frameworks/$APPDIR/MacOS"
chmod +x "../MacOS/$BINARYNAME"
cp "../MacOS/$BINARYNAME" "../MacOS/$APPNAME"
chmod +x "../MacOS/$APPNAME"
mkdir "${{ Steam++_APPDIR }}"
mv -f "${{ Steam++_OutPutFilePath }}/$BINARYNAME.app" "${{ Steam++_APPDIR }}/$BINARYNAME.app"
+7
View File
@@ -0,0 +1,7 @@
[*.cs]
# IDE0055: 修正格式
dotnet_diagnostic.IDE0055.severity = suggestion
# IDE1006: 命名样式
dotnet_diagnostic.IDE1006.severity = suggestion
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
# ARM64(Windows/macOS/Linux) Native Library
## 7z.dll
21.07 (2021-12-26) by https://www.7-zip.org
## libe_sqlite3.dylib
sqlitepclraw.lib.e_sqlite3.2.0.7.nupkg
Binary file not shown.
+98
View File
@@ -0,0 +1,98 @@
DU'LAN 都兰
ZHA'SHUI 柞水
LU'HE 六合
JUN'LIAN 筠连
JIANG'DU 江都
BAI'XIANG 柏乡
CHANG'YANG 长阳
CHANG'CHUN 长春
CHANG'BAI 长白
CHENG'DU 成都
MIN'HANG 闵行
XIN'DU 新都
TIAN'CHANG 天长
PAN'YU 番禺
DU'YUN 都匀
CHANG'YUAN 长垣
CHANG'ZHI'XIAN 长治县
WU'DU 武都
CHEN'QIU 沈丘
WEN'XIU 温宿
BENG'BU 蚌埠
CHANG'SHUN 长顺
BI'YANG 泌阳
SHEN'XIAN 莘县
DA'BU 大埔
TA'SHI'KU'ER'GAN 塔什库尔干
SAN'DU 三都
YAN'DU 盐都
ZI'CHANG 子长
YU'DU 于都
MIN'YUE 民乐
HUA'DU 花都
SHANG'DU 商都
DU'CHANG 都昌
KE'SHI'KE'TENG'QI 克什克腾旗
YAN'CHANG 延长
CHANG'BAI'SHAN 长白山
NING'DU 宁都
ZENG'MU'AN'SHA 曾母暗沙
NAN'YUE 南乐
CHANG'WU 长武
CHANG'NING 长宁
CHANG'AN 长安
CHONG'QING 重庆
HANG'TANG 行唐
GA'SHI 伽师
CHANG'SHOU 长寿
SUI'LING 绥棱
CHANG'TING 长汀
FAN'SHI 繁峙
CHANG'SHA 长沙
CHANG'DAO 长岛
XIA'MEN 厦门
CHANG'LING 长岭
CHANG'TAI 长泰
YU'LI 尉犁
LU'AN 六安
BA'XIU 八宿
CHANG'HAI 长海
MU'PING 牟平
A'TU'SHI 阿图什
CHANG'ZHI'SHI 长治市
CHANG'QING 长清
CHANG'FENG 长丰
CHANG'LE 长乐
FENG'DU 丰都
KA'SHI 喀什
TONG'BAI 桐柏
YUE'QING 乐清
ZHONG'MU 中牟
SHI'FANG 什邡
WU'SHI 乌什
DU'AN 都安
LAO'TING 乐亭
WU'BU 吴堡
NA'QU 那曲
SHAN'XIAN 单县
NA'PO 那坡
JU'MO 且末
CHANG'XING 长兴
GONG'CHANG'LING 弓长岭
CHANG'DU 昌都
XIAO'TING 猇亭
GUO'YANG 涡阳
QIAN'WEI 犍为
WANG'DU 望都
LUE'YANG 略阳
SHUANG'BAI 双柏
CHANG'SHA'XIAN 长沙县
XIN'YUE 新乐
CHANG'GE 长葛
CUO'NA 错那
DU'JIANG'YAN 都江堰
LANG'QIA'ZI 浪卡子
XING'YANG 荥阳
LU'QU 碌曲
HUANG'PI 黄陂
@@ -0,0 +1,8 @@
# Android Native Library
[Xamarin.Android 支持通过标准 PInvoke 机制使用本机库。 你还可以将不属于 OS 的其他本机库绑定到你的 .apk。](https://docs.microsoft.com/zh-cn/xamarin/android/platform/native-libraries)
## libgojni.so & libtun2socks.so
Source code compilation by https://github.com/2dust/v2rayNG
## shadowsocks-android\libtun2socks.so
Apk extraction by https://github.com/shadowsocks/shadowsocks-android/releases/tag/v5.2.6
Binary file not shown.
Binary file not shown.
+3 -2
View File
@@ -3,5 +3,6 @@ using static System.Properties.ThisAssembly;
[assembly: SuppressIldasm]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Mobile" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Desktop" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Avalonia" + PublicKey)]
[assembly: InternalsVisibleTo("Xamarin.Forms.Platform.Android.UnitTests" + PublicKey)]
[assembly: InternalsVisibleTo("Assembly-CSharp" + PublicKey)]
+7
View File
@@ -0,0 +1,7 @@
# Windows/macOS/Linux x64 Native Library & General C# Source Code & Third Party Projects
## 7z.dll
21.07 (2021-12-26) by https://www.7-zip.org
## libzstd.dll
https://github.com/facebook/zstd/releases/tag/v1.5.2
Binary file not shown.
Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
# Windows/macOS/Linux x86(32 bit) Native Library
## 7z.dll
21.07 (2021-12-26) by https://www.7-zip.org
+52 -40
View File
@@ -1,22 +1,34 @@
### 版本亮点
1. ASF 升级至 **V5.2.2.4**
2. Android 12 适配
3. Android 上的 ASP.NET Core 升级至 2.2.5
4. Desktop 上的 Avalonia 升级至 0.10.12
1. Android 支持 VPN 模式(推荐) 进行本地加速
2. 新增 Steam 游戏信息编辑功能,可修改游戏名称、图片、启动项等数据并同步至 Steam 客户端生效
3. ASF 升级至 V5.2.5.4
4. 优化了显示图片时 GPU 占用
5. 优化库存游戏和脚本内存占用
6. 库存游戏编辑功能支持从 SteamGridDB 匹配预览和下载图片
7. 网络加速新增 MEGA 网盘反代服务
8. macOS 支持 Arm64(Apple Silicon)
<!--
. ~~Windows 支持 DNS 驱动拦截模式(推荐) 进行本地加速~~
-->
### 修复问题
1. 修复 Steam Beta 版账号切换失效
2. 修复 ASF 在线配置文件生成器链接错误
3. 修复 Linux 上运行时闪退
4. 修复 Windows 7 上点击任务栏图标没有最小化
5. 改进 打开 Web 链接失败时候的错误提示
6. 改进 JumpList 在 Windows 10.0.10586 上使用 UWP API
7. 改进 Windows 安装包默认路径使用 $PROGRAMFILES64
8. 改进 Windows 安装版 AppData 与 Cache 文件夹不再使用根目录
9. 改进 Android Apk 包使用单一包,不再根据 ABI 拆分
10. 改进 Android 本地加速与 ASF 使用前台服务运行
11. 改进 本地加速 增加 重置 Hosts 文件 与 打开 Hosts 所在文件夹
12. 改进 Hosts 文件存在多个 Mark 导致失败的错误提示
1. 修复 本地令牌 无令牌刷新时提示密码错误
2. 改进 Android 端 本地令牌 列表样式第一条与最后一条的上下外边距
3. 改进 俄语翻译,由 vanja-san 提供
4. 改进 .NET 运行时升级至 6.0.4(仅 Desktop 端)
5. 改进 脚本配置 未启动时的内存占用,以及减少总体内存占用率
6. 修复 Hosts 加速模式下使用仅启用脚本功能导致死循环
7. 改进 Linux 端 可监听 443 端口配置
8. 修复 Windows 端,动态桌面背景窗口显示时一些可能导致闪退的潜在问题
9. 修复 Android 端,因 CheckBox 导致在低于 6.0 Marshmallow 系统上引发的闪退
10. 修复 Desktop 高 DPI 分辨率下菜单图标会显示模糊的问题
11. 修复 Windows 端,切换至网络加速菜单时可能会出现 UI 错乱的问题
12. 修复 Desktop 端,某些情况库存游戏会卡住无限加载的问题
13. 修复 网络加速 Onedrive 加速失效问题
14. 修复 消息框不再提醒复选框勾上可能不生效的问题
15. 修复 Windows 端, JumpList 切换 Steam Beta 账号失效的问题
16. 修复 ASF,当使用 IPC.config 时,程序内打开网页端口号值不正确
### 已知问题
- 除 Windows 之外的平台此软件自动更新尚不可用
@@ -24,8 +36,6 @@
- macOS
- [尚未公证](https://support.apple.com/zh-cn/guide/mac-help/mh40616/10.15/mac/10.15),这会影响 macOS Catalina(版本 10.15)以上版本
- Linux
- **Hosts 代理模式**可能无法配置成功,推荐使用**系统代理模式**
- 系统代理模式下 Discord 更新下载加速不可用
- 窗口弹出位置不正确
- 鼠标指针浮动样式不正确
- Windows
@@ -38,19 +48,20 @@
- 需要安装 Extended Security Update
- 在不符合先决条件的情况下运行可能导致
- 程序无法正常运行
- **解决方案**
- 使用 Windows Update 更新系统补丁
- 运行程序时提示 计算机中丢失 api-ms-win-core-winrt-l1-1-0.dll
- **解决方案**
- 因 [Windows 7 延长结束日期](https://support.microsoft.com/zh-cn/windows/windows-7-%E6%94%AF%E6%8C%81%E4%BA%8E-2020-%E5%B9%B4-1-%E6%9C%88-14-%E6%97%A5%E7%BB%88%E6%AD%A2-b75d4580-2cc7-895a-2c9c-1466d9a53962)以于 2020 年 1 月 14 日结束支持
- 所以必须安装 [Extended Security Update](https://docs.microsoft.com/zh-cn/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) 支持,在安装第三年的补丁后[结束支持日期](https://docs.microsoft.com/zh-cn/lifecycle/products/windows-7)可延长至 2023 年 1 月 10 日
- 可安装 *第三方* 补丁整合包例如 **[UpdatePack7R2](https://cn.bing.com/search?q=UpdatePack7R2)** *或* 购买官方 ESU 产品密钥 解决
- 下载 api-ms-win-core-winrt-l1-1-0.dll 文件放入程序根目录(Steam++.exe 所在文件夹)
- [从 Github 上直接下载](https://github.com/BeyondDimension/SteamTools/raw/develop/references/runtime.win7-x64.Microsoft.NETCore.Windows.ApiSets/api-ms-win-core-winrt-l1-1-0.dll)
- [从 Gitee 上直接下载](https://gitee.com/rmbgame/SteamTools/raw/develop/references/runtime.win7-x64.Microsoft.NETCore.Windows.ApiSets/api-ms-win-core-winrt-l1-1-0.dll)
- [从 NuGet 上下载后提取](https://www.nuget.org/api/v2/package/runtime.win7-x64.Microsoft.NETCore.Windows.ApiSets/1.0.1)
- .nupkg 文件可使用解压工具打开或解压,找到此文件复制即可
- **解决方案**
- 下载 api-ms-win-core-winrt-l1-1-0.dll 文件放入程序根目录(Steam++.exe 所在文件夹)
- [从 Github 上直接下载](https://github.com/BeyondDimension/SteamTools/raw/develop/references/runtime.win7-x64.Microsoft.NETCore.Windows.ApiSets/api-ms-win-core-winrt-l1-1-0.dll)
- [从 Gitee 上直接下载](https://gitee.com/rmbgame/SteamTools/raw/develop/references/runtime.win7-x64.Microsoft.NETCore.Windows.ApiSets/api-ms-win-core-winrt-l1-1-0.dll)
- Android
- 本地加速
- 因 Android 7(Nougat API 24) 之后的版本不在信任用户证书,所以此功能已放弃继续开发,如仍想使用需要自行导入证书到系统目录,使用 adb 工具或 Magisk 之类的软件操作,未来会使用不需要证书的加速功能替换此功能
[![steampp.net](https://img.shields.io/badge/WebSite-steampp.net-brightgreen.svg?style=flat-square&color=61dafb)](https://steampp.net)
[![Steam++ v2.6.7](https://img.shields.io/badge/Steam++-v2.6.7-brightgreen.svg?style=flat-square&color=512bd4)]()
[![Steam++ v2.7.0](https://img.shields.io/badge/Steam++-v2.7.0-brightgreen.svg?style=flat-square&color=512bd4)]()
##### [不知道该下载哪个文件?](./download-guide.md)
@@ -59,21 +70,22 @@
### 文件校验
| File | Checksum (SHA256) |
| ---- | ---- |
| Steam++_win_x64_v2.6.7.7z | SHA256 |
| Steam++_win_x64_fde_v2.6.7.7z | SHA256 |
| Steam++_win_x64_v2.7.0.7z | SHA256 |
| Steam++_win_x64_fde_v2.7.0.7z | SHA256 |
| | |
| Steam++_win_x64_v2.6.7.exe | SHA256 |
| Steam++_win_x64_fde_v2.6.7.exe | SHA256 |
| Steam++_win_x64_v2.7.0.exe | SHA256 |
| Steam++_win_x64_fde_v2.7.0.exe | SHA256 |
| | |
| Steam++_linux_x64_v2.6.7.7z | SHA256 |
| Steam++_linux_arm64_v2.6.7.7z | SHA256 |
| Steam++_linux_x64_v2.7.0.7z | SHA256 |
| Steam++_linux_arm64_v2.7.0.7z | SHA256 |
| | |
| Steam++_linux_x64_v2.6.7.deb | SHA256 |
| Steam++_linux_arm64_v2.6.7.deb | SHA256 |
| Steam++_linux_x64_v2.7.0.deb | SHA256 |
| Steam++_linux_arm64_v2.7.0.deb | SHA256 |
| | |
| Steam++_linux_x64_v2.6.7.rpm | SHA256 |
| Steam++_linux_arm64_v2.6.7.rpm | SHA256 |
| Steam++_linux_x64_v2.7.0.rpm | SHA256 |
| Steam++_linux_arm64_v2.7.0.rpm | SHA256 |
| | |
| Steam++_macos_x64_v2.6.7.dmg | SHA256 |
| Steam++_macos_x64_v2.7.0.dmg | SHA256 |
| Steam++_macos_arm64_v2.7.0.dmg | SHA256 |
| | |
| Steam++_android_v2.6.7.apk | SHA256 |
| Steam++_android_v2.7.0.apk | SHA256 |
+4 -1
View File
@@ -28,7 +28,7 @@ namespace System
public const string MainDllPath_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Steam++.dll";
[Obsolete("use DirPublishWinX86_", true)]
[Obsolete("use DirPublishWinX86_")]
public const string DirPublishWinX86 =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\win-x86";
@@ -46,6 +46,9 @@ namespace System
public const string DirPublishWinX64_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\win-x64";
public const string DirPublishOsx =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\{0}";
public const string DirPublishWinX64_FDE_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\FrameworkDependent\win-x64";
Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 KiB

After

Width:  |  Height:  |  Size: 829 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 657 KiB

After

Width:  |  Height:  |  Size: 660 KiB

+69 -13
View File
@@ -1,4 +1,5 @@
#if __ANDROID__
using Android.App;
using Android.Content;
using Android.OS;
using Android.Webkit;
@@ -147,7 +148,41 @@ namespace System.Application.UI
b.AppendLine();
b.Append("[app.install] ");
b.Append(platformService.IsInstall);
b.Append(platformService.IsInstall.ToLowerString());
b.AppendLine();
#if WINDOWS10_0_17763_0_OR_GREATER
if (OperatingSystem2.IsWindows10AtLeast)
{
try
{
#pragma warning disable CA1416 // 验证平台兼容性
var currentPackage = global::Windows.ApplicationModel.Package.Current;
var familyName = currentPackage.Id.FamilyName;
b.Append("[app.pkg] ");
b.Append(familyName);
b.AppendLine();
#pragma warning restore CA1416 // 验证平台兼容性
}
catch
{
}
}
#endif
b.Append("[memory.usage] ");
#if __ANDROID__
var activityManager = activity.GetActivityManager();
ActivityManager.MemoryInfo memoryInfo = new();
activityManager.GetMemoryInfo(memoryInfo);
var nativeHeapSize = memoryInfo.TotalMem;
var nativeHeapFreeSize = memoryInfo.AvailMem;
var usedMemInBytes = nativeHeapSize - nativeHeapFreeSize;
var usedMemInPercentage = usedMemInBytes * 100M / nativeHeapSize;
b.Append($"{IOPath.GetSizeString(usedMemInBytes)} ({usedMemInPercentage:0.00}%)");
#else
b.Append(IOPath.GetSizeString(Environment.WorkingSet));
#endif
b.AppendLine();
b.Append("[deploy.mode] ");
@@ -162,6 +197,7 @@ namespace System.Application.UI
b.Append(RuntimeInformation.ProcessArchitecture);
b.AppendLine();
#if MONOANDROID
b.Append("[clr.ver] ");
string? clrVersion;
try
@@ -177,9 +213,16 @@ namespace System.Application.UI
else
b.Append(clrVersion);
b.AppendLine();
#endif
#if __ANDROID__
#if V2RAY
b.Append("[v2ray.ver] ");
b.Append(Libv2ray.Libv2ray.CheckVersionX());
b.AppendLine();
#endif
//if (_ThisAssembly.Debuggable)
//{
// b.Append("[app.multi] ");
@@ -226,18 +269,25 @@ namespace System.Application.UI
static void GetStartTime(StringBuilder b)
{
string startTimeStr;
const string f = "yy-MM-dd HH:mm:ss";
const string f2 = "HH:mm:ss";
const string f3 = "dd HH:mm:ss";
var starttime = Process.GetCurrentProcess().StartTime;
starttime = starttime.ToLocalTime();
var utc_time = starttime.ToUniversalTime();
var local = TimeZoneInfo.Local;
startTimeStr = utc_time.Hour == starttime.Hour
? starttime.ToString(starttime.Year >= 2100 ? DateTimeFormat.Standard : f)
: utc_time.Day == starttime.Day
? $"{utc_time.ToString(f)}({starttime.ToString(f2)} {local.StandardName})"
: $"{utc_time.ToString(f)}({starttime.ToString(f3)} {local.StandardName})";
try
{
const string f = "yy-MM-dd HH:mm:ss";
const string f2 = "HH:mm:ss";
const string f3 = "dd HH:mm:ss";
var starttime = ArchiSteamFarm.Core.OS.ProcessStartTime;
starttime = starttime.ToLocalTime();
var utc_time = starttime.ToUniversalTime();
var local = TimeZoneInfo.Local;
startTimeStr = utc_time.Hour == starttime.Hour
? starttime.ToString(starttime.Year >= 2100 ? DateTimeFormat.Standard : f)
: utc_time.Day == starttime.Day
? $"{utc_time.ToString(f)}({starttime.ToString(f2)} {local.StandardName})"
: $"{utc_time.ToString(f)}({starttime.ToString(f3)} {local.StandardName})";
}
catch (Exception)
{
startTimeStr = string.Empty;
}
b.Append(startTimeStr);
}
b.AppendLine();
@@ -345,9 +395,15 @@ namespace System.Application.UI
b.Append(GetJavaSystemGetProperty("java.vm.version"));
b.AppendLine();
#if MONOANDROID
b.Append("[mono.ver] ");
b.Append(Mono.Runtime.GetDisplayName());
b.AppendLine();
#else
b.Append("[clr.ver] ");
b.Append(Environment.Version);
b.AppendLine();
#endif
b.Append("[kernel.ver] ");
b.Append(GetJavaSystemGetProperty("os.version"));
@@ -14,4 +14,8 @@
<PackageReference Include="Avalonia.Skia" Aliases="AvaloniaSkia" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
</Project>
@@ -9,6 +9,7 @@ namespace Avalonia.Skia
public sealed class SKTypefaceCollection
{
readonly @this @this;
internal SKTypefaceCollection(@this @this)
{
this.@this = @this;
+4
View File
@@ -37,4 +37,8 @@
<LastGenOutput>SR.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
</Project>
@@ -118,11 +118,11 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ExitCode_IsEmulator" xml:space="preserve">
<value>This app does not support running in the emulator</value>
<value>This app doesn&apos;t support running in the emulator</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsRoot" xml:space="preserve">
<value>This app does not support running on devices with ROOT permissions</value>
<value>This app is not supported to run on devices with ROOT privileges</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsVirtualApk" xml:space="preserve">
@@ -130,7 +130,7 @@
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsXposedExists" xml:space="preserve">
<value>This app does not support running on devices with Xposed frameworks</value>
<value>This app does not support running on devices with the Xposed framework installed</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
</root>
@@ -122,7 +122,7 @@
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsRoot" xml:space="preserve">
<value>Esta aplicación no admite la ejecución en dispositivos con permisos ROOT</value>
<value>Esta aplicación no es compatible para ejecutarse en dispositivos con privilegios ROOT</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsVirtualApk" xml:space="preserve">
@@ -130,7 +130,7 @@
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsXposedExists" xml:space="preserve">
<value>Esta aplicación no admite la ejecución en dispositivos con marcos Xposed</value>
<value>Esta aplicación no admite la ejecución en dispositivos con el marco Xposed instalado</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
</root>
@@ -122,7 +122,7 @@
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsRoot" xml:space="preserve">
<value>Questa app non supporta l&apos;esecuzione su dispositivi con autorizzazioni ROOT</value>
<value>Questa app non è supportata per l&apos;esecuzione su dispositivi con privilegi ROOT</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsVirtualApk" xml:space="preserve">
@@ -130,7 +130,7 @@
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsXposedExists" xml:space="preserve">
<value>Questa app non supporta l&apos;esecuzione su dispositivi con framework Xposed</value>
<value>Questa app non supporta l&apos;esecuzione su dispositivi con il framework Xposed installato</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
</root>
@@ -118,19 +118,19 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ExitCode_IsEmulator" xml:space="preserve">
<value>이 앱은 에뮬레이터에서 실행을 지원하지 않습니다</value>
<value>이 앱은 에뮬레이터에서 실행을 지원하지 않습니다.</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsRoot" xml:space="preserve">
<value>이 앱은 ROOT 권한이 있는 장치에서 실행을 지원하지 않습니다</value>
<value>이 응용 프로그램은 루트 권한이있는 장치에서 실행할 수 없습니다</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsVirtualApk" xml:space="preserve">
<value>이 응용 프로그램은 멀티 오픈을 지원하지 않습니다</value>
<value>이 응용 프로그램은 멀티 오픈을 지원하지 않습니다.</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
<data name="ExitCode_IsXposedExists" xml:space="preserve">
<value>이 앱은 Xposed 프레임워크가 설치된 장치에서 실행을 지원하지 않습니다</value>
<value>이 응용 프로그램은 Xposed 프레임 워크가 설치된 장치에서 실행을 지원하지 않습니다.</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
</data>
</root>
@@ -118,19 +118,19 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ExitCode_IsEmulator" xml:space="preserve">
<value>Это приложение не поддерживает запуск в эмуляторе</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
<value>Это приложение невозможно запустить через эмулятор</value>
<comment>Comment=;Author=vanja-san</comment>
</data>
<data name="ExitCode_IsRoot" xml:space="preserve">
<value>Это приложение не поддерживает запуск на устройствах с разрешениями ROOT</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
<value>Это приложение невозможно запустить на устройствах с root правами</value>
<comment>Comment=;Author=vanja-san</comment>
</data>
<data name="ExitCode_IsVirtualApk" xml:space="preserve">
<value>Это приложение не поддерживает многооткрытие</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
<value>Это приложение не поддерживает несколько окон</value>
<comment>Comment=;Author=vanja-san</comment>
</data>
<data name="ExitCode_IsXposedExists" xml:space="preserve">
<value>Это приложение не поддерживает работу на устройствах, оснащенных платформой Xposed</value>
<comment>Comment=;Author=MicrosoftTranslator</comment>
<value>Это приложение невозможно запустить на устройствах с установленным Xposed Framework</value>
<comment>Comment=;Author=vanja-san</comment>
</data>
</root>
@@ -55,9 +55,9 @@ namespace System.Application.Services.Implementation
Log.Error(TAG, e, "ShowDroidToast Error, text: {0}, IsMainThread: {1}", text, IsMainThread);
// 解决在子线程中调用Toast的异常情况处理
Looper.Prepare();
var _toast = AndroidToast.MakeText(context, text, duration2)
var toast_ = AndroidToast.MakeText(context, text, duration2)
?? throw new NullReferenceException("toast markeText Fail(2)");
SetTextAndShow(_toast, text);
SetTextAndShow(toast_, text);
Looper.Loop();
}
@@ -1,7 +1,7 @@
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFramework>MonoAndroid11.0</TargetFramework>
<TargetFramework>MonoAndroid12.0</TargetFramework>
<RootNamespace>System</RootNamespace>
<AssemblyName>System.Common.ClientLib.Droid</AssemblyName>
<AndroidUseIntermediateDesignerFile>false</AndroidUseIntermediateDesignerFile>
@@ -2,33 +2,62 @@ using Android.Runtime;
using Java.Security.Cert;
using System.IO;
using Xamarin.Android.Net;
using X509Certificate2 = System.Security.Cryptography.X509Certificates.X509Certificate2;
// ReSharper disable once CheckNamespace
namespace System
{
public static partial class HttpClientExtensions
{
const string certificateFileType = "X.509";
static readonly Lazy<CertificateFactory?> certificateFactory = new(() =>
{
var certificateFactory = CertificateFactory.GetInstance(certificateFileType);
return certificateFactory;
});
internal static CertificateFactory CertificateFactory
{
get
{
var certificateFactory = HttpClientExtensions.certificateFactory.Value;
if (certificateFactory == null)
throw new NullReferenceException(
$"CertificateFactory.GetInstance Fail, Type: {certificateFileType}");
return certificateFactory;
}
}
/// <summary>
/// 添加可信任证书,可用于调试时HTTPS抓包
/// 添加可信任证书,可用于调试时 HTTPS 抓包
/// </summary>
/// <param name="handler"></param>
/// <param name="certificateFileData">证书文件数据(文件流,内嵌资源流)</param>
/// <param name="certificateFileType">证书文件类型,默认使用X.509</param>
public static void AddTrustedCert(
this AndroidClientHandler handler,
Stream certificateFileData,
string certificateFileType = "X.509")
Stream certificateFileData)
{
var certificateFactory = CertificateFactory.GetInstance(certificateFileType);
if (certificateFactory == null)
throw new NullReferenceException(
$"CertificateFactory.GetInstance Fail, Type: {certificateFileType}");
var certificate = certificateFactory.GenerateCertificate(certificateFileData);
var certificate = CertificateFactory.GenerateCertificate(certificateFileData);
if (certificate == null)
throw new NullReferenceException("GenerateCertificate Fail");
if (handler.TrustedCerts == null)
handler.TrustedCerts = new JavaList<Certificate>();
handler.TrustedCerts.Add(certificate);
}
/// <summary>
/// 将 .NET 中的 X509 证书对象 转换为 JVM 中的 X509 证书对象
/// <para>Java.Security.Cert.X509Certificate</para>
/// <para>=></para>
/// <para>System.Security.Cryptography.X509Certificates.X509Certificate2</para>
/// </summary>
/// <param name="certificate2"></param>
/// <returns></returns>
public static X509Certificate Convert(this X509Certificate2 certificate2)
{
using var stream = new MemoryStream(certificate2.RawData);
return CertificateFactory.GenerateCertificate(stream)!.JavaCast<X509Certificate>();
}
}
}
@@ -22,4 +22,8 @@
<ProjectReference Include="..\Common.ClientLib\Common.ClientLib.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
</Project>
@@ -1,125 +1,126 @@
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Properties;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
using _ThisAssembly = System.Properties.ThisAssembly;
//using System.Diagnostics;
//using System.Diagnostics.CodeAnalysis;
//using System.IO;
//using System.Linq;
//using System.Properties;
//using System.Reflection;
//using System.Security.Cryptography;
//using System.Text;
//using _ThisAssembly = System.Properties.ThisAssembly;
namespace System.Application
{
[DebuggerDisplay("{DebuggerDisplay(),nq}")]
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
public sealed class AppClientAttribute : Attribute
{
string DebuggerDisplay() => $"type: {type}";
//namespace System.Application
//{
// [Obsolete]
// [DebuggerDisplay("{DebuggerDisplay(),nq}")]
// [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
// public sealed class AppClientAttribute : Attribute
// {
// string DebuggerDisplay() => $"type: {type}";
readonly Type? type;
string? str;
// readonly Type? type;
// string? str;
[NotNull, DisallowNull] // C# 8 not null
public object? Value { get; private set; }
// [NotNull, DisallowNull] // C# 8 not null
// public object? Value { get; private set; }
public AppClientAttribute(Type type, string str)
{
this.type = type;
this.str = str;
init();
if (Value == null) throw new ArgumentNullException(nameof(Value));
}
// public AppClientAttribute(Type type, string str)
// {
// this.type = type;
// this.str = str;
// init();
// if (Value == null) throw new ArgumentNullException(nameof(Value));
// }
#pragma warning disable IDE1006 // 命名样式
//#pragma warning disable IDE1006 // 命名样式
void init()
#pragma warning restore IDE1006 // 命名样式
{
ctor();
// void init()
//#pragma warning restore IDE1006 // 命名样式
// {
// ctor();
void ctor()
{
#if DEBUG
var stopwatch = Stopwatch.StartNew();
#endif
Value = Serializable.DMPB64U(type.ThrowIsNull(nameof(type)), str)
.ThrowIsNull(nameof(Value));
str = null;
#if DEBUG
stopwatch.Stop();
Debug.WriteLine($"AppClientAttr init 耗时:{stopwatch.ElapsedMilliseconds}ms");
#endif
}
}
// void ctor()
// {
//#if DEBUG
// var stopwatch = Stopwatch.StartNew();
//#endif
// Value = Serializable.DMPB64U(type.ThrowIsNull(nameof(type)), str)
// .ThrowIsNull(nameof(Value));
// str = null;
//#if DEBUG
// stopwatch.Stop();
// Debug.WriteLine($"AppClientAttr init 耗时:{stopwatch.ElapsedMilliseconds}ms");
//#endif
// }
// }
[return: MaybeNull]
public static T Get<T>(Assembly? assembly = null)
{
#if DEBUG
var stopwatch = Stopwatch.StartNew();
#endif
assembly ??= Assembly.GetCallingAssembly();
var attrs = assembly.GetCustomAttributes<AppClientAttribute>();
var type = typeof(T);
var attr = attrs.FirstOrDefault(x => x.Value != null && x.type == type);
var t = (attr != default && attr.Value is T value) ? value : default;
#if DEBUG
stopwatch.Stop();
Debug.WriteLine($"AppClientAttr Get<{type.Name}> 耗时:{stopwatch.ElapsedMilliseconds}ms");
#endif
return t;
}
// [return: MaybeNull]
// public static T Get<T>(Assembly? assembly = null)
// {
//#if DEBUG
// var stopwatch = Stopwatch.StartNew();
//#endif
// assembly ??= Assembly.GetCallingAssembly();
// var attrs = assembly.GetCustomAttributes<AppClientAttribute>();
// var type = typeof(T);
// var attr = attrs.FirstOrDefault(x => x.Value != null && x.type == type);
// var t = (attr != default && attr.Value is T value) ? value : default;
//#if DEBUG
// stopwatch.Stop();
// Debug.WriteLine($"AppClientAttr Get<{type.Name}> 耗时:{stopwatch.ElapsedMilliseconds}ms");
//#endif
// return t;
// }
public enum ResValueFormat : byte
{
String,
StringGuidD,
StringGuidN,
}
// public enum ResValueFormat : byte
// {
// String,
// StringGuidD,
// StringGuidN,
// }
public static string? GetResValue(Func<string, Stream?> func, string name, bool isSingle, string namespacePrefix, ResValueFormat format)
{
static string GetResFileName(string name, bool isSingle) => isSingle ? $"{name}.pfx" : $"{name}-{(_ThisAssembly.Debuggable ? "debug" : "release")}.pfx";
static string GetResFileNameH(string name) => Hashs.String.Crc32(name, isLower: false);
static string GetResFullName(string name, string namespacePrefix) => string.IsNullOrEmpty(namespacePrefix) ? name : namespacePrefix + name;
static MemoryStream GetMemoryStream(Stream stream)
{
if (stream is not MemoryStream ms)
{
ms = new MemoryStream();
stream.CopyTo(ms);
}
return ms;
}
static string ReadStream(Stream stream, ResValueFormat format)
{
if (format == ResValueFormat.String)
{
using var reader = new StreamReader(stream, EncodingCache.UTF8NoBOM);
return reader.ReadToEnd();
}
if (format == ResValueFormat.StringGuidD || format == ResValueFormat.StringGuidN)
{
using var ms = GetMemoryStream(stream);
var guid = new Guid(ms.ToArray());
return format switch
{
ResValueFormat.StringGuidD => guid.ToString("D"),
ResValueFormat.StringGuidN => guid.ToString("N"),
_ => throw new ArgumentOutOfRangeException(nameof(format), format, null),
};
}
else
{
throw new ArgumentOutOfRangeException(nameof(format), format, null);
}
}
name = GetResFileName(name, isSingle);
name = GetResFileNameH(name);
name = GetResFullName(name, namespacePrefix);
using var stream = func(name);
if (stream != null) return ReadStream(stream, format);
return null;
}
}
}
// public static string? GetResValue(Func<string, Stream?> func, string name, bool isSingle, string namespacePrefix, ResValueFormat format)
// {
// static string GetResFileName(string name, bool isSingle) => isSingle ? $"{name}.pfx" : $"{name}-{(_ThisAssembly.Debuggable ? "debug" : "release")}.pfx";
// static string GetResFileNameH(string name) => Hashs.String.Crc32(name, isLower: false);
// static string GetResFullName(string name, string namespacePrefix) => string.IsNullOrEmpty(namespacePrefix) ? name : namespacePrefix + name;
// static MemoryStream GetMemoryStream(Stream stream)
// {
// if (stream is not MemoryStream ms)
// {
// ms = new MemoryStream();
// stream.CopyTo(ms);
// }
// return ms;
// }
// static string ReadStream(Stream stream, ResValueFormat format)
// {
// if (format == ResValueFormat.String)
// {
// using var reader = new StreamReader(stream, EncodingCache.UTF8NoBOM);
// return reader.ReadToEnd();
// }
// if (format == ResValueFormat.StringGuidD || format == ResValueFormat.StringGuidN)
// {
// using var ms = GetMemoryStream(stream);
// var guid = new Guid(ms.ToArray());
// return format switch
// {
// ResValueFormat.StringGuidD => guid.ToString("D"),
// ResValueFormat.StringGuidN => guid.ToString("N"),
// _ => throw new ArgumentOutOfRangeException(nameof(format), format, null),
// };
// }
// else
// {
// throw new ArgumentOutOfRangeException(nameof(format), format, null);
// }
// }
// name = GetResFileName(name, isSingle);
// name = GetResFileNameH(name);
// name = GetResFullName(name, namespacePrefix);
// using var stream = func(name);
// if (stream != null) return ReadStream(stream, format);
// return null;
// }
// }
//}
@@ -10,6 +10,8 @@ namespace System.Application
public const string Prefix_HTTP = "http://";
public const string Prefix_MSStore = "ms-windows-store://";
public const string Prefix_Email = "mailto:";
/// <summary>
/// 判断字符串是否为 Http Url
@@ -27,5 +29,12 @@ namespace System.Application
/// <param name="url"></param>
/// <returns></returns>
public static bool IsStoreUrl([NotNullWhen(true)] string? url) => url != null && url.StartsWith(Prefix_MSStore, StringComparison.OrdinalIgnoreCase);
/// <summary>
/// 判断字符串是否为 Email Url
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static bool IsEmailUrl([NotNullWhen(true)] string? url) => url != null && url.StartsWith(Prefix_Email, StringComparison.OrdinalIgnoreCase);
}
}
@@ -52,7 +52,7 @@ namespace System.Application
static OpenResultCode OpenAnalysis(string? url)
{
if (IsStoreUrl(url))
if (IsStoreUrl(url) || IsEmailUrl(url))
{
return OpenCoreByProcess(url);
}
@@ -9,6 +9,7 @@ namespace System.Application
public static class DeviceInfo2
{
static readonly Lazy<IDeviceInfoPlatformService?> @interface = new(DI.Get_Nullable<IDeviceInfoPlatformService>);
static IDeviceInfoPlatformService? Interface => @interface.Value;
/// <inheritdoc cref="DeviceInfo.Model"/>
@@ -160,6 +161,10 @@ namespace System.Application
{
return OSNames.Value.WSA;
}
else if (Interface != null && Interface.IsChromeOS)
{
return OSNames.Value.ChromeOS;
}
else
{
if (DeviceType == DeviceType.Virtual)
@@ -201,6 +206,7 @@ namespace System.Application
}
return default;
});
public static OSNames.Value OSNameValue => _OSNameValue.Value;
/// <inheritdoc cref="DeviceInfo.DeviceType"/>
@@ -51,8 +51,14 @@ namespace System.Application
throw new PlatformNotSupportedException();
}
}
catch (PermissionException e)
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
return null;
}
catch (OperationCanceledException)
{
// The user canceled or something went wrong
return null;
}
}
@@ -96,7 +102,7 @@ namespace System.Application
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
}
catch
catch (OperationCanceledException)
{
// The user canceled or something went wrong
}
@@ -139,7 +145,7 @@ namespace System.Application
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
}
catch
catch (OperationCanceledException)
{
// The user canceled or something went wrong
}
@@ -169,8 +175,14 @@ namespace System.Application
throw new PlatformNotSupportedException();
}
}
catch (PermissionException e)
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
return null;
}
catch (OperationCanceledException)
{
// The user canceled or something went wrong
return null;
}
}
@@ -212,7 +224,7 @@ namespace System.Application
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
}
catch
catch (OperationCanceledException)
{
// The user canceled or something went wrong
}
@@ -255,7 +267,7 @@ namespace System.Application
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
}
catch
catch (OperationCanceledException)
{
// The user canceled or something went wrong
}
@@ -278,8 +290,14 @@ namespace System.Application
}
throw new PlatformNotSupportedException();
}
catch (PermissionException e)
{
Toast.Show(e.Message); // Xamarin.Essentials.PermissionException
return null;
}
catch (OperationCanceledException)
{
// The user canceled or something went wrong
return null;
}
}
@@ -94,6 +94,7 @@ namespace System.Application
}
static bool mIsFirstLaunchEver;
/// <summary>
/// 获取一个值,该值指示此应用是否首次在此设备上启动。
/// </summary>
@@ -110,6 +111,7 @@ namespace System.Application
return mIsFirstLaunchEver;
}
}
private set
{
mIsFirstLaunchEver = value;
@@ -117,6 +119,7 @@ namespace System.Application
}
static bool mIsFirstLaunchForCurrentVersion;
/// <summary>
/// 获取一个值,该值指示这是否是当前版本号的应用程序的首次启动。
/// </summary>
@@ -133,6 +136,7 @@ namespace System.Application
return mIsFirstLaunchForCurrentVersion;
}
}
private set
{
mIsFirstLaunchForCurrentVersion = value;
@@ -13,10 +13,11 @@ namespace System.Application.Services
string VersionString { get; }
DeviceType DeviceType { get; }
bool IsChromeOS { get; }
}
}
namespace System.Application.Services.Implementation
{
public abstract class DeviceInfoPlatformServiceImpl : IDeviceInfoPlatformService
@@ -30,5 +31,7 @@ namespace System.Application.Services.Implementation
public /*virtual*/ string VersionString => DeviceInfo.VersionString;
public virtual DeviceType DeviceType => DeviceInfo.DeviceType;
public virtual bool IsChromeOS => false;
}
}
@@ -1,53 +0,0 @@
namespace System.Application.Services
{
/// <summary>
/// 通知栏服务
/// </summary>
/// <typeparam name="TNotificationType"></typeparam>
/// <typeparam name="TEntrance"></typeparam>
public interface INotificationService<TNotificationType, TEntrance, TNotificationService>
where TNotificationType : notnull, Enum
where TEntrance : notnull, Enum
where TNotificationService : INotificationService<TNotificationType, TEntrance, TNotificationService>
{
/// <summary>
/// 获取是否有通知权限
/// </summary>
/// <returns></returns>
bool AreNotificationsEnabled();
/// <summary>
/// 显示通知
/// </summary>
/// <param name="text">通知内容</param>
/// <param name="notificationType">通知类型</param>
/// <param name="autoCancel"></param>
/// <param name="title">通知标题</param>
/// <param name="entrance">点击通知的入口点</param>
void Notify(
string text,
TNotificationType notificationType,
bool autoCancel = true,
string? title = default,
TEntrance? entrance = default);
/// <summary>
/// 取消通知
/// </summary>
/// <param name="notificationType"></param>
void Cancel(TNotificationType notificationType);
/// <summary>
/// 取消所有通知
/// </summary>
void CancelAll();
/// <summary>
/// 下载进度通知
/// </summary>
Progress<float> NotifyDownload(
Func<string> text,
TNotificationType notificationType,
string? title = default);
}
}
@@ -29,7 +29,7 @@ namespace System.Application.Services
if ((!string.IsNullOrWhiteSpace(value)) &&
(string.IsNullOrWhiteSpace(textBoxText) ||
(textBoxText.Length < value.Length &&
value.Substring(0, textBoxText.Length) == textBoxText)))
value[..textBoxText.Length] == textBoxText)))
{
return value;
}
@@ -9,10 +9,16 @@ namespace System.Application.Services.Implementation
/// <inheritdoc cref="ILocalDataProtectionProvider"/>
public abstract class LocalDataProtectionProviderBase : ILocalDataProtectionProvider
{
readonly Lazy<Aes> _aes;
#pragma warning disable IDE1006 // 命名样式
#pragma warning disable SA1309 // Field names should not begin with underscore
readonly Lazy<Aes> _aes;
#pragma warning disable SA1300 // Element should begin with upper-case letter
protected Aes aes => _aes.Value;
#pragma warning restore SA1300 // Element should begin with upper-case letter
#pragma warning restore SA1309 // Field names should not begin with underscore
#pragma warning restore IDE1006 // 命名样式
protected readonly LocalDataProtectionType defaultELocalDataProtectionType;
protected readonly IProtectedData protectedData;
protected readonly IDataProtectionProvider dataProtectionProvider;
@@ -24,6 +24,7 @@ namespace System.Application.Services.Implementation
if (sharedName == null) return GetId(key);
return $"{key}_{sharedName}_S";
}
public void PlatformClear(string? sharedName)
{
conn.Execute(Sql_Delete_Where_SharedName_Equals, sharedName ?? string.Empty);
@@ -47,8 +47,8 @@ namespace System.Application.Services.Implementation
void Show_()
{
if (intercept.OnShowExecuting(text)) return;
var _duration = duration ?? CalcDurationByStringLength(text.Length);
PlatformShow(text, _duration);
var duration_ = duration ?? CalcDurationByStringLength(text.Length);
PlatformShow(text, duration_);
}
}
catch (Exception e)
@@ -7,6 +7,7 @@ namespace System.Application.UI.ViewModels
protected virtual bool IgnoreIcon { get; }
protected TId? id;
/// <summary>
/// 唯一键
/// </summary>
@@ -28,6 +29,7 @@ namespace System.Application.UI.ViewModels
}
protected string title = string.Empty;
/// <summary>
/// 标题文本
/// </summary>
@@ -38,6 +40,7 @@ namespace System.Application.UI.ViewModels
}
protected TIcon? icon;
/// <summary>
/// 图标
/// </summary>
@@ -31,4 +31,8 @@
<ProjectReference Include="..\Repositories.sqlite-net-pcl\Repositories.sqlite-net-pcl.csproj" />
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
</Project>
@@ -28,10 +28,8 @@ namespace System.Application.Models
if (mDataSource == null) mDataSource = new List<T>();
return mDataSource;
}
set
{
mDataSource = value;
}
set => mDataSource = value;
}
[MPKey(1)]
+7 -1
View File
@@ -92,6 +92,11 @@ namespace System.Application
/// Android 模拟器
/// </summary>
AndroidVirtual,
/// <summary>
/// https://github.com/chromeos
/// </summary>
ChromeOS,
}
public static string ToDisplayName(this Value value) => value == default ? string.Empty :
@@ -119,7 +124,8 @@ namespace System.Application
Value.AndroidDesktop or
Value.AndroidTV or
Value.AndroidWatch or
Value.AndroidVirtual => true,
Value.AndroidVirtual or
Value.ChromeOS => true,
_ => false,
};
}
@@ -120,7 +120,8 @@ namespace System.Application
/// <summary>
/// 黑名单
/// </summary>
public static readonly byte[] Blacklist = new byte[] {
public static readonly byte[] Blacklist = new byte[]
{
148, 149, 146, // 物联网号段
};
}
@@ -70,7 +70,6 @@ namespace System.Application.Services
/// <param name="requestUri"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
[Obsolete("use cached")]
Task<Stream?> GetImageStreamAsync(string requestUri, CancellationToken cancellationToken = default);
static string GetImagesCacheDirectory(string? channelType)
@@ -13,7 +13,7 @@ namespace System.Application.Services.Implementation
static readonly IDictionary<Type, object> validators = new Dictionary<Type, object>();
public static void AddColumnValidate<T>(Func<T, string?> validate)
=> validators.Add(typeof(T), validate);
=> validators.TryAdd(typeof(T), validate);
const string I = "I";
const string IReadOnly = "IReadOnly";
@@ -68,7 +68,7 @@ namespace System.Application.Settings
stream.Position = 0;
}
var data = Serializable.SMP(_settings);
stream.Write(data, 0, data.Length);
stream.Write(data);
//XamlServices.Save(stream, this._settings);
}
}
@@ -41,6 +41,7 @@ namespace System.Application.Settings
return _cached ? _value : Default;
}
set
{
if (_cached && Equals(_value, value)) return;
@@ -181,6 +182,7 @@ namespace System.Application.Settings
if (value == null) return;
ValueChanged += _handlers[value] = (sender, args) => value(sender, new PropertyChangedEventArgs(nameof(Value)));
}
remove
{
if (value == null) return;
@@ -22,6 +22,7 @@ namespace System.Application.Settings
protected static string GetLocalFilePath(string configName) => Path.Combine(IOPath.AppDataDirectory, configName);
static readonly Lazy<string> _LocalFilePath = new(() => GetLocalFilePath(ConfigName));
public static string LocalFilePath => _LocalFilePath.Value;
public static ISerializationProvider Local { get; } = new FileSettingsProvider(LocalFilePath);
@@ -81,6 +82,7 @@ namespace System.Application.Settings
}
static readonly Lazy<string> _CategoryName = new(() => typeof(TSettings).Name);
public static new string CategoryName => _CategoryName.Value;
static string GetKey(string propertyName) => $"{CategoryName}.{propertyName}";
@@ -3,6 +3,7 @@ namespace System.Application.Settings
public sealed class ValueChangedEventArgs<T> : EventArgs where T : notnull
{
public T? OldValue { get; }
public T? NewValue { get; }
public ValueChangedEventArgs(T? oldValue, T? newValue)
+4
View File
@@ -54,4 +54,8 @@
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
</Project>
+2
View File
@@ -31,5 +31,7 @@ namespace System
public const string RFC1123 = "r";
public const string File = "yyyy-MM-dd HHmmssfffffff";
public const string YearMonth = "yyyy/MM";
}
}
@@ -10,8 +10,8 @@ namespace System
{
public static sbyte[] ToSByteArray(this byte[] buffer)
{
ReadOnlySpan<byte> _buffer = buffer;
return _buffer.ToSByteArray();
ReadOnlySpan<byte> buffer_ = buffer;
return buffer_.ToSByteArray();
}
public static sbyte[] ToSByteArray(this ReadOnlySpan<byte> buffer)
@@ -19,8 +19,8 @@ namespace System
public static byte[] ToByteArray(this sbyte[] buffer)
{
ReadOnlySpan<sbyte> _buffer = buffer;
return _buffer.ToByteArray();
ReadOnlySpan<sbyte> buffer_ = buffer;
return buffer_.ToByteArray();
}
public static byte[] ToByteArray(this ReadOnlySpan<sbyte> buffer)
@@ -25,7 +25,7 @@ namespace System
/// <param name="dt"></param>
/// <returns></returns>
public static DateTimeOffset GetCurrentMonth(this DateTimeOffset dt)
=> new(dt.Year, dt.Month, 1, 0, 0, 0, TimeSpan.Zero);
=> new(dt.Year, dt.Month, 1, 0, 0, 0, dt.Offset);
/// <summary>
/// 根据时间日期获取当前月(最后一天)
@@ -33,6 +33,6 @@ namespace System
/// <param name="dt"></param>
/// <returns></returns>
public static DateTimeOffset GetCurrentMonthLastDay(this DateTimeOffset dt)
=> new DateTimeOffset(dt.Year, dt.Month, 1, 0, 0, 0, TimeSpan.Zero).AddMonths(1).AddDays(-1);
=> new DateTimeOffset(dt.Year, dt.Month, 1, 0, 0, 0, dt.Offset).AddMonths(1).AddDays(-1);
}
}
@@ -113,5 +113,16 @@ namespace System
return new(stream, encoding, bufferSize, leaveOpen);
}
}
public static byte[] ToByteArray2(this Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);
return bytes;
}
}
}
@@ -37,7 +37,7 @@ namespace System
yield break;
}
}
if (isDian || item >= '0' && item <= '9')
if (isDian || (item >= '0' && item <= '9'))
{
findChar = true;
yield return item;
@@ -52,12 +52,14 @@ namespace System
}
#region TryParse
/// <summary>
/// 尝试将数字的字符串表示形式转换为 双精度浮点型
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static decimal? TryParseDecimal(this string value) => decimal.TryParse(value, out var temp) ? temp : null;
/// <summary>
/// 尝试将数字的字符串表示形式转换为 双精度浮点型
/// </summary>
@@ -226,10 +228,18 @@ namespace System
/// </summary>
/// <param name="pattern">The wildcard pattern to convert.</param>
/// <returns>A regex equivalent of the given wildcard.</returns>
public static bool IsWildcard(this string str, string pattern)
public static bool IsWildcard(this string str, string pattern, RegexOptions options = RegexOptions.Compiled)
=> Regex.IsMatch(str, "^" + Regex.Escape(pattern)
.Replace("\\*", ".*")
.Replace("\\?", ".") + "$", RegexOptions.Compiled);
.Replace("\\?", ".") + "$", options);
/// <summary>
/// 域名表达式
/// *表示任意0到多个字符
/// </summary>
public static bool IsDomainPattern(this string str, string pattern, RegexOptions options = RegexOptions.IgnoreCase)
=> Regex.IsMatch(str, Regex.Escape(pattern)
.Replace(@"\*", @"[^\.]*"), options);
#region Compressor
@@ -106,7 +106,6 @@ namespace System
Exception = exception;
}
public static readonly EventHandler<TaskLog> Occured = (sender, e) =>
{
const string format = @"Unhandled Exception occured from Task.Forget()
+10
View File
@@ -117,6 +117,16 @@ namespace System
public const string maFile = ".maFile";
public static readonly string[] ImageFileExtensions = new string[]
{
FileEx.BMP,
FileEx.JPG,
FileEx.JPEG,
FileEx.PNG,
FileEx.GIF,
FileEx.WEBP,
};
public static bool IsSupportedTextReader(string extension) =>
string.Equals(extension, JSON, StringComparison.OrdinalIgnoreCase) ||
string.Equals(extension, TXT, StringComparison.OrdinalIgnoreCase) ||
@@ -19,7 +19,7 @@ namespace System
/// </summary>
public static partial class VideoFormatEnumExtensions
{
static readonly Lazy<IReadOnlyDictionary<VideoFormat, string>> _enum_mime = new(() =>
static readonly Lazy<IReadOnlyDictionary<VideoFormat, string>> mEnumMime = new(() =>
{
var value = new Dictionary<VideoFormat, string>()
{
@@ -28,31 +28,33 @@ namespace System
};
return value;
});
static readonly Lazy<IReadOnlyDictionary<string, VideoFormat>> _mime_enum = new(() =>
static readonly Lazy<IReadOnlyDictionary<string, VideoFormat>> mMimeEnum = new(() =>
{
var value = enum_mime.ToDictionary(x => x.Value, x => x.Key, StringComparer.OrdinalIgnoreCase);
var value = EnumMime.ToDictionary(x => x.Value, x => x.Key, StringComparer.OrdinalIgnoreCase);
return value;
});
static IReadOnlyDictionary<VideoFormat, string> enum_mime => _enum_mime.Value;
static IReadOnlyDictionary<string, VideoFormat> mime_enum => _mime_enum.Value;
static IReadOnlyDictionary<VideoFormat, string> EnumMime => mEnumMime.Value;
static IReadOnlyDictionary<string, VideoFormat> MimeEnum => mMimeEnum.Value;
/// <summary>
/// 获取MIME
/// </summary>
/// <param name="imageFormat"></param>
/// <param name="videoFormat"></param>
/// <returns></returns>
/// <exception cref="ArgumentOutOfRangeException"></exception>
public static string GetMIME(this VideoFormat videoFormat)
{
if (enum_mime.ContainsKey(videoFormat)) return enum_mime[videoFormat];
if (EnumMime.ContainsKey(videoFormat)) return EnumMime[videoFormat];
throw new ArgumentOutOfRangeException(nameof(videoFormat), videoFormat, null);
}
public static VideoFormat? GetFormat(string? mime)
{
if (mime == null) return null;
if (mime_enum.ContainsKey(mime)) return mime_enum[mime];
if (MimeEnum.ContainsKey(mime)) return MimeEnum[mime];
return null;
}
}
+170 -16
View File
@@ -3,6 +3,7 @@ using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading;
#if !NET35 && !NOT_XE
using System.Threading.Tasks;
@@ -40,14 +41,16 @@ namespace System
/// </summary>
/// <param name="dirPath"></param>
/// <param name="noRecursive"></param>
public static void DirTryDelete(string dirPath, bool noRecursive = false)
public static bool DirTryDelete(string dirPath, bool noRecursive = false)
{
try
{
Directory.Delete(dirPath, !noRecursive);
return true;
}
catch
{
return false;
}
}
@@ -99,14 +102,16 @@ namespace System
/// <para>通常用于删除缓存</para>
/// </summary>
/// <param name="filePath"></param>
public static void FileTryDelete(string filePath)
public static bool FileTryDelete(string filePath)
{
try
{
File.Delete(filePath);
return true;
}
catch
{
return false;
}
}
@@ -158,7 +163,7 @@ namespace System
}
/// <summary>
/// (可选)初始化文件系统
/// 初始化文件系统
/// </summary>
/// <param name="getAppDataDirectory">获取应用目录文件夹</param>
/// <param name="getCacheDirectory">获取缓存目录文件夹</param>
@@ -168,31 +173,119 @@ namespace System
IOPath.getCacheDirectory = getCacheDirectory;
}
/// <summary>
/// 带迁移的初始化文件系统,使用 <see cref="Directory.Move(string, string)"/> 或 xcopy 进行移动,如果迁移失败则回退源目录
/// </summary>
/// <param name="destAppDataPath">新的 AppData 文件夹路径</param>
/// <param name="destCachePath">新的 Cache 文件夹路径</param>
/// <param name="sourceAppDataPath">旧的 AppData 文件夹路径</param>
/// <param name="sourceCachePath">旧的 Cache 文件夹路径</param>
protected static void InitFileSystemWithMigrations(
string destAppDataPath, string destCachePath,
string sourceAppDataPath, string sourceCachePath)
{
bool ExistsNotEmptyDir(string path)
{
var exists = Directory.Exists(path);
if (DesktopBridge.IsRunningAsUwp)
{
if (path == destCachePath || path == sourceCachePath)
{
return false;
}
}
return exists && Directory.EnumerateFileSystemEntries(path).Any(); // 文件夹存在且不为空文件夹
}
var paths = new[] { destAppDataPath, destCachePath, };
var dict_paths = paths.ToDictionary(x => x, x => Directory.Exists(x) && Directory.EnumerateFileSystemEntries(x).Any());
var dict_paths = paths.ToDictionary(x => x, x => ExistsNotEmptyDir(x));
if (dict_paths.Values.All(x => !x))
{
var old_paths = new[] { sourceAppDataPath, sourceCachePath, };
if (old_paths.All(x => Directory.Exists(x) && Directory.EnumerateFileSystemEntries(x).Any())) // 迁移之前根目录上的文件夹
{
var isNotFirst = false;
for (int i = 0; i < old_paths.Length; i++)
{
var path = paths[i];
var old_path = old_paths[i];
try
{
Directory.Move(old_path, path);
if (!isNotFirst)
{
try
{
// 尝试搜索之前版本的进程将其结束
var currentProcess = Process.GetCurrentProcess();
var query = from x in Process.GetProcessesByName(currentProcess.ProcessName)
where x != currentProcess
let m = x.TryGetMainModule()
where m != null && m.FileName != currentProcess.TryGetMainModule()?.FileName
select x;
var process = query.ToArray();
foreach (var proces in process)
{
try
{
#if NETCOREAPP3_0_OR_GREATER
proces.Kill(true);
#else
proces.Kill();
#endif
}
catch
{
}
}
}
catch
{
}
isNotFirst = true;
}
try
{
Directory.Move(old_path, path);
}
catch
{
try
{
CopyDirectory(old_path, path);
}
catch
{
if (OperatingSystem2.IsWindows)
{
var psi = new ProcessStartInfo
{
FileName = "cmd.exe",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardInput = true,
};
var p = Process.Start(psi);
p.Start();
p.StandardInput.WriteLine($"xcopy \"{old_path}\" \"{path}\" /y &exit");
p.WaitForExit(10000);
p.Kill();
}
else
{
throw;
}
}
}
dict_paths[path] = true;
}
catch
{
// 跨卷移动失败或其他原因失败,使用旧的目录,并尝试删除创建的空文件夹
DirTryDelete(path);
if (!DesktopBridge.IsRunningAsUwp)
{
// 跨卷移动失败或其他原因失败,使用旧的目录,并尝试删除创建的空文件夹
DirTryDelete(path);
}
paths[i] = old_path;
}
}
@@ -211,6 +304,34 @@ namespace System
string GetAppDataDirectory() => paths[0];
string GetCacheDirectory() => paths[1];
}
/// <summary>
/// 初始化文件系统,但优先使用旧目录上的文件夹,如果存在的话(允许空文件夹),不会进行文件迁移
/// </summary>
/// <param name="destAppDataPath">新的 AppData 文件夹路径</param>
/// <param name="destCachePath">新的 Cache 文件夹路径</param>
/// <param name="sourceAppDataPath">旧的 AppData 文件夹路径</param>
/// <param name="sourceCachePath">旧的 Cache 文件夹路径</param>
protected static void InitFileSystemUseDestFirst(
string destAppDataPath, string destCachePath,
string sourceAppDataPath, string sourceCachePath)
{
var paths = new[] { destAppDataPath, destCachePath, };
var old_paths = new[] { sourceAppDataPath, sourceCachePath, };
for (int i = 0; i < old_paths.Length; i++)
{
var item = old_paths[i];
if (Directory.Exists(item))
{
paths[i] = item;
}
}
InitFileSystem(GetAppDataDirectory, GetCacheDirectory);
string GetAppDataDirectory() => paths[0];
string GetCacheDirectory() => paths[1];
}
}
/// <summary>
@@ -394,16 +515,16 @@ namespace System
/// </summary>
/// <param name="filePath"></param>
/// <returns>单位 字节</returns>
public static double GetFileSize(FileInfo fileInfo) => fileInfo.Exists ? fileInfo.Length : 0D;
public static decimal GetFileSize(FileInfo fileInfo) => fileInfo.Exists ? fileInfo.Length : 0M;
/// <summary>
/// 获取指定路径的大小
/// </summary>
/// <param name="dirPath">路径</param>
/// <returns>单位 字节</returns>
public static double GetDirectorySize(string dirPath)
public static decimal GetDirectorySize(string dirPath)
{
double len = 0D;
var len = 0M;
// 判断该路径是否存在(是否为文件夹)
var isDirectory = IsDirectory(dirPath, out var fileInfo, out var directoryInfo);
if (isDirectory.HasValue)
@@ -424,12 +545,12 @@ namespace System
return len;
}
const double unit = 1024d;
static readonly string[] units = new[] { "B", "KB", "MB", "GB", "TB" };
const decimal unit = 1024M;
static readonly string[] units = new[] { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB", "BB" };
public static (double length, string unit) GetSize(double length)
public static (decimal length, string unit) GetSize(decimal length)
{
if (length > 0d)
if (length > 0M)
{
for (int i = 0; i < units.Length; i++)
{
@@ -440,11 +561,11 @@ namespace System
}
else
{
return (0, units.First());
return (0M, units.First());
}
}
public static string GetSizeString(double length)
public static string GetSizeString(decimal length)
{
(length, string unit) = GetSize(length);
return $"{length:0.00} {unit}";
@@ -460,5 +581,38 @@ namespace System
public const char UnixDirectorySeparatorChar = '/';
public const char WinDirectorySeparatorChar = '\\';
public static void CopyDirectory(string sourceDir, string destinationDir, bool recursive = true)
{
// Get information about the source directory
var dir = new DirectoryInfo(sourceDir);
// Check if the source directory exists
if (!dir.Exists)
throw new DirectoryNotFoundException($"Source directory not found: {dir.FullName}");
// Cache directories before we start copying
DirectoryInfo[] dirs = dir.GetDirectories();
// Create the destination directory
Directory.CreateDirectory(destinationDir);
// Get the files in the source directory and copy to the destination directory
foreach (FileInfo file in dir.GetFiles())
{
string targetFilePath = Path.Combine(destinationDir, file.Name);
file.CopyTo(targetFilePath);
}
// If recursive and copying subdirectories, recursively call this method
if (recursive)
{
foreach (DirectoryInfo subDir in dirs)
{
string newDestinationDir = Path.Combine(destinationDir, subDir.Name);
CopyDirectory(subDir.FullName, newDestinationDir, true);
}
}
}
}
}
@@ -25,6 +25,7 @@ namespace System.Net.Http
#endif
return UseWebProxy(proxy) ? proxy : null;
}
set
{
#if NETSTANDARD
@@ -62,9 +63,13 @@ namespace System.Net.Http
sealed class HttpNoProxy : IWebProxy
{
public static readonly HttpNoProxy Instance = new();
private HttpNoProxy() { }
public ICredentials? Credentials { get; set; }
public Uri? GetProxy(Uri destination) => null;
public bool IsBypassed(Uri host) => true;
}
@@ -75,14 +80,13 @@ namespace System.Net.Http
{
try
{
#if !NETSTANDARD
if (handler is SocketsHttpHandler s)
{
s.Proxy = proxy;
if (useProxy && s.UseProxy != useProxy) s.UseProxy = useProxy; // 仅启用代理时修改开关
}
else
#if NETCOREAPP2_1_OR_GREATER
if (handler is SocketsHttpHandler s)
{
s.Proxy = proxy;
if (useProxy && s.UseProxy != useProxy) s.UseProxy = useProxy; // 仅启用代理时修改开关
return;
}
#endif
if (handler is HttpClientHandler h)
{

Some files were not shown because too many files have changed in this diff Show More