Compare commits

...
186 Commits
Author SHA1 Message Date
Mossimo 6cfd47cb17 show no tips 2021-05-26 02:31:19 +08:00
Aigio Liu 26d7690092 v2.3.0 2021-05-26 02:09:37 +08:00
Aigio Liu c2134298b5 fix 2021-05-26 01:52:46 +08:00
rmbgame 746fed8cdb save 2021-05-26 01:18:55 +08:00
Mossimo 31eae8b056 fix 2021-05-26 00:24:30 +08:00
Mossimo ae867373dd 1 2021-05-26 00:21:02 +08:00
Mossimo e6fac670f7 fix 2021-05-26 00:12:19 +08:00
Mossimo cc82301e92 tips 2021-05-26 00:03:09 +08:00
rmbgame 545610d927 fix 2021-05-26 00:02:02 +08:00
rmbgame db4ea77939 fix 2021-05-25 23:42:55 +08:00
Aigio Liu 1c413817fa fix MoveOrderByIndexAsync 2021-05-25 23:41:55 +08:00
Mossimo ca94efb132 fix tips 2021-05-25 23:38:41 +08:00
Mossimo 5809dc7d59 fix 2021-05-25 23:36:51 +08:00
rmbgame c9af4408e0 add 2021-05-25 22:43:52 +08:00
Mossimo 66af5379cb add btn 2021-05-25 22:38:43 +08:00
Mossimo 97394b81e9 save 2021-05-25 22:36:47 +08:00
rmbgame 225dd3d748 add new icon 2021-05-25 22:21:52 +08:00
Aigio Liu be313984c7 修复 UI 通知 2021-05-25 22:16:52 +08:00
rmbgame bbe7bf2c22 fix export password error 2021-05-25 19:35:48 +08:00
rmbgame 840711740e fix 2021-05-25 18:34:10 +08:00
Aigio Liu f792622653 fix CloseWindow Fail 2021-05-25 18:13:20 +08:00
rmbgame f8a5938375 fix 2021-05-25 15:59:37 +08:00
Aigio Liu 5b8a84b4e1 fix BindFastLogin 2021-05-25 13:06:42 +08:00
Aigio Liu f2a2650523 v2.3 2021-05-24 21:48:54 +08:00
rmbgame 43a3f3c0dc 新增
hCaptcha验证码
EPIC验证码
artstation
v2ex
反代支持
修复discord更新下载代理失败
2021-05-24 18:11:59 +08:00
rmbgame 68c7b324af fix display bug 2021-05-24 18:11:59 +08:00
Aigio Liu 251ab23db8 fix 2021-05-24 17:05:31 +08:00
Aigio Liu 7121e416fc Desktop Bridge 2021-05-24 10:58:27 +08:00
Aigio Liu 4fd0dbf784 Desktop Bridge 2021-05-24 10:58:26 +08:00
Aigio Liu 107623b26a WINDOWS_DESKTOP_BRIDGE 2021-05-23 23:08:49 +08:00
Aigio Liu 35af87946d fix 2021-05-23 19:35:01 +08:00
rmbgame 083b214b97 fix 2021-05-23 18:22:38 +08:00
rmbgame 9ac178d375 fix 2021-05-23 18:21:11 +08:00
Aigio Liu 3d76038301 FastLoginChannels 2021-05-23 18:08:16 +08:00
rmbgame 704cd5116c ui 2021-05-23 17:06:14 +08:00
rmbgame b46cb4e10e save 2021-05-23 17:02:02 +08:00
Aigio Liu f680738f12 rename ms to xbox 2021-05-23 17:00:19 +08:00
Aigio Liu faaaeb592d Add Xbox Icon 2021-05-23 16:54:29 +08:00
rmbgame 259fe3e592 fix text error 2021-05-23 16:54:22 +08:00
Mossimo e50945332f Fix Error 2021-05-23 16:52:53 +08:00
rmbgame 17a9ec53cc add new icon 2021-05-23 16:50:10 +08:00
rmbgame a043373430 fix error 2021-05-23 16:35:53 +08:00
Aigio Liu 5f5607b6c2 fix 2021-05-23 16:31:33 +08:00
Aigio Liu 9198b18e4f fix 2021-05-23 16:31:31 +08:00
Aigio Liu a0c5117f5e fix 2021-05-23 14:57:22 +08:00
Aigio Liu 628a845fa6 fix 2021-05-23 14:52:02 +08:00
rmbgame 082b5b72b1 fix 2021-05-23 14:35:51 +08:00
rmbgame f25a4f49a8 令牌加密解密 导入导出功能完成 2021-05-23 14:35:51 +08:00
rmbgame 47c06f2b9a save 2021-05-23 14:35:51 +08:00
Aigio Liu 2a450c237d fix 2021-05-23 14:33:52 +08:00
Aigio Liu 21bd1d2b32 fix 2021-05-23 12:16:15 +08:00
Aigio Liu 092c59b5b2 令牌仓储层添加新方法 2021-05-23 12:11:39 +08:00
Aigio Liu 25a99127f5 fix 2021-05-23 11:59:05 +08:00
Aigio Liu 216869ab56 令牌导入更改 2021-05-23 11:54:35 +08:00
Aigio Liu b5c3842ea7 账号绑定 2021-05-22 23:42:56 +08:00
rmbgame 20ea077f4c text error 2021-05-22 01:19:22 +08:00
Aigio Liu 41ea7f6e58 绑定账号 2021-05-22 00:17:19 +08:00
rmbgame 0f9235e1f0 令牌导出导入 80% 2021-05-21 07:22:47 +08:00
rmbgame 7adadfb6e8 save 2021-05-21 07:22:47 +08:00
Aigio Liu 69c7a3fcef 其他快速登录,改为动态绑定数组值 2021-05-21 00:38:10 +08:00
Aigio Liu ab4d12df52 Bind 2021-05-20 22:44:58 +08:00
rmbgame efb7578ff9 快速登录界面 2021-05-20 22:15:05 +08:00
rmbgame 5cf35a37ac save 2021-05-20 22:15:05 +08:00
Mossimo 8df7ab3b9c fixBug 2021-05-20 21:20:36 +08:00
Aigio Liu 643ff4a41d fix 2021-05-20 12:59:40 +08:00
Aigio Liu 11d20f36f3 Desktop Bridge 2021-05-20 07:04:46 +08:00
Aigio Liu 28f1198a9c 令牌仓储层 导入导出与上移下移 2021-05-19 15:44:12 +08:00
rmbgame 71e8777414 save 2021-05-19 14:18:58 +08:00
rmbgame c80f57153e save 2021-05-19 14:13:54 +08:00
rmbgame d30bcdb374 fix error 2021-05-19 14:11:55 +08:00
Mossimo 679e75ea54 fixerror 2021-05-19 14:02:20 +08:00
Mossimo f936401a2e 1 2021-05-19 13:48:43 +08:00
rmbgame 71d7ee8cff fix error 2021-05-19 13:27:37 +08:00
rmbgame 364a0f5c23 令牌加密功能 2021-05-19 13:05:15 +08:00
rmbgame 4a200f1ae4 令牌加密功能
文本框字体调整 #197
2021-05-19 09:05:44 +08:00
rmbgame d228201a4e 修复挂游戏时长功能问题 2021-05-19 02:53:01 +08:00
rmbgame 606e203df5 save 2021-05-19 02:23:26 +08:00
Aigio Liu c4e5c5e8a6 add lock 2021-05-18 21:32:56 +08:00
Aigio Liu b3a387f0a6 fix #243 2021-05-18 21:12:52 +08:00
Aigio Liu 2d56a44117 改进 残留进程时启动逻辑 2021-05-18 12:11:15 +08:00
Mossimo aa625e5f44 fix tips 2021-05-18 09:45:09 +08:00
Mossimo ea92cccf59 save 2021-05-18 09:24:54 +08:00
rmbgame 15ab81f6e4 修复winauth子模块问题 2021-05-17 23:49:00 +08:00
rmbgame 98ff99257b fix 2021-05-17 23:39:10 +08:00
Aigio Liu 2e647b49bf lazy http SteamService 2021-05-17 23:36:10 +08:00
Aigio Liu 5a1a04e988 fix 2021-05-17 23:27:53 +08:00
rmbgame 5ba959d69c fix 2021-05-17 22:41:00 +08:00
rmbgame fd7f8b3897 save 2021-05-17 22:31:58 +08:00
rmbgame 7444559b84 save 2021-05-17 22:31:58 +08:00
Aigio Liu a4c3317c10 fix null 2021-05-17 22:02:48 +08:00
Aigio Liu bb8a8cd498 fix 2021-05-17 21:46:46 +08:00
Mossimo a498bb69f5 fix cmd 2021-05-17 20:47:34 +08:00
Mossimo 735ed43fa2 Add Auto Setting 2021-05-17 20:47:34 +08:00
Aigio Liu ab44d9028f fix 2021-05-17 20:39:24 +08:00
Mossimo bf940b46f3 完善挂时常 2021-05-17 20:22:49 +08:00
Mossimo a6e5911b32 save 2021-05-17 20:22:49 +08:00
Mossimo 5e5c08d507 save 2021-05-17 20:22:49 +08:00
rmbgame 058091e904 update all nuget package 2021-05-16 23:23:03 +08:00
rmbgame 6e23a4bf07 update nuget 2021-05-16 22:55:41 +08:00
Aigio Liu 084f1b3765 令牌仓储改进 2021-05-16 22:52:10 +08:00
Mossimo 6e87610611 save 2021-05-16 00:32:16 +08:00
Mossimo f74fe9abea save 2021-05-15 23:41:24 +08:00
rmbgame 41ad3c1831 优化挂时长功能内存占用 2021-05-15 22:19:53 +08:00
rmbgame c80806d5cb save 2021-05-15 02:57:17 +08:00
Mossimo ce357c39f7 fixerror 2021-05-15 02:49:26 +08:00
Mossimo c50ffab7ed auto run AFKApps 2021-05-15 02:31:53 +08:00
Mossimo f6afb0bbb3 UIsave 2021-05-15 00:34:56 +08:00
Mossimo f1d62b958c changeView 2021-05-15 00:34:56 +08:00
Mossimo 1b1bc81f91 save 2021-05-15 00:34:56 +08:00
rmbgame 436df007a9 修改插入令牌默认不启用本机加密,
新增令牌加密设置
2021-05-15 00:30:38 +08:00
rmbgame c67b84ea7a save 2021-05-14 01:05:47 +08:00
Aigio Liu ef2cc93f57 绑定手机 UI & Add SVG 2021-05-13 23:26:16 +08:00
rmbgame 0fa8efbfff 更新日志 2021-05-13 03:21:00 +08:00
rmbgame 45c0987a72 新增无边框窗口化功能 2021-05-13 02:34:03 +08:00
rmbgame 0dd9184b24 无边框窗口化功能 80% 2021-05-13 01:29:11 +08:00
rmbgame 1cd6540e2d 添加隐藏游戏功能 2021-05-12 21:53:45 +08:00
rmbgame 2dfd72b34b update nuget 2021-05-12 21:53:45 +08:00
Aigio Liu d391e3b266 fix 2021-05-12 20:19:41 +08:00
Aigio Liu 316d514b9b 绑定手机 & 解绑快速登录 2021-05-12 20:16:16 +08:00
Mossimo 0923e5ad3e 1 2021-05-12 19:26:50 +08:00
rmbgame 4a49340f7a ex 2021-05-12 19:20:49 +08:00
rmbgame 190e87bee0 fix #231 2021-05-12 18:42:52 +08:00
rmbgame 5214aafc34 fix 2021-05-12 00:37:23 +08:00
rmbgame 2998125b70 fix 2021-05-12 00:37:23 +08:00
rmbgame 2f58d8cdd2 fix 2021-05-12 00:37:23 +08:00
rmbgame 7d9a8535e0 save 2021-05-12 00:37:23 +08:00
Mossimo 8301ec7fdb hideList 2021-05-12 00:27:52 +08:00
Aigio Liu c6831c764b 改进 hosts 文件写入 无权限操作时错误文本 2021-05-11 23:26:37 +08:00
Aigio Liu c2d6b384ee 新功能 账号注销 2021-05-11 21:17:05 +08:00
Mossimo 946e12e15a fix error 2021-05-11 21:02:22 +08:00
Mossimo 14ddd2cd6e save 2021-05-11 19:18:08 +08:00
Mossimo 90a13306b9 hideappwindow 2021-05-11 19:16:06 +08:00
Aigio Liu bd9632f4f6 修复 部分 toast 没有正确显示 2021-05-11 15:04:48 +08:00
Aigio Liu 565185378f 改进 获取占用端口进程检测 2021-05-11 11:58:27 +08:00
Aigio Liu 328bb390d7 release v2.2.0 2021-05-10 19:04:56 +08:00
Aigio Liu caf724b823 v2.2.0 2021-05-10 19:02:44 +08:00
Mossimo b14a98446c AddList 2021-05-10 09:24:35 +08:00
rmbgame cba194a185 忽略列表优化 2021-05-10 01:02:19 +08:00
rmbgame f5b2b67f0d 修复未启动steam状态加载游戏bug 2021-05-10 00:47:22 +08:00
rmbgame d2f1219847 toast只在当前激活窗口弹出 2021-05-10 00:43:53 +08:00
Aigio Liu 9de4e476d2 Add 7z, Fix Tool Projects 2021-05-09 23:55:37 +08:00
Aigio Liu 287652c461 VisualElementsManifest 2021-05-09 22:54:33 +08:00
Aigio Liu 63f605ca11 Fix CircleImageStream 2021-05-09 22:50:56 +08:00
rmbgame fea1fe66ae fix 2021-05-09 22:49:07 +08:00
rmbgame 4d5fcd42a9 fix 2021-05-09 22:49:07 +08:00
Aigio Liu 0be5854ffe v2.2.0 2021-05-09 22:12:05 +08:00
Aigio Liu 989952d12a Try Fix
System.ObjectDisposedException: ObjectDisposed_Generic
ObjectDisposed_ObjectName_Name, SslStream
   at System.Net.Security.SslStream.<ThrowIfExceptional>g__ThrowExceptional|137_0(ExceptionDispatchInfo e)
   at System.Net.Security.SslStream.get_SslProtocol()
   at System.Net.Http.HttpConnectionPool.GetHttp2ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
2021-05-09 22:06:51 +08:00
Aigio Liu 2dfe428397 Fix 2021-05-09 21:44:56 +08:00
rmbgame ee872d3b98 update Avalonia nuget 2021-05-09 21:15:55 +08:00
rmbgame 3279633692 log 2021-05-09 20:52:31 +08:00
Aigio Liu 796cef01ff LoginUsingSteamClient 2021-05-09 19:49:33 +08:00
Aigio Liu 03c83f04a6 FastLoginOrRegister 2021-05-09 19:49:32 +08:00
rmbgame 048f8fdd65 fix 2021-05-09 02:29:20 +08:00
rmbgame a1dd6f04d7 快速登录新UI 2021-05-09 02:28:48 +08:00
rmbgame 99ea333e92 优化 SteamConnectService 初始化 2021-05-09 00:25:07 +08:00
Aigio Liu 7b7bda86ec TryFix WebView3 2021-05-09 00:21:17 +08:00
rmbgame 5d05765b52 fix local error 2021-05-08 23:09:06 +08:00
Aigio Liu 0a08621c22 Fix 2021-05-08 21:53:03 +08:00
Aigio Liu 69b3149b71 Fix 2021-05-08 21:38:18 +08:00
rmbgame da413be342 修复头像退出刷新问题
端口占用提示占用的进程
升级nuget包
2021-05-08 21:28:36 +08:00
Aigio Liu 4f6fb0ebc6 release v2.2.0 2021-05-08 20:39:50 +08:00
rmbgame d6051f1c4f read 2.20 2021-05-08 20:36:37 +08:00
Aigio Liu adbac2663b release v2.2 2021-05-08 20:24:20 +08:00
rmbgame 460775b7ee 修复steam登录账号头像显示问题 2021-05-08 20:09:48 +08:00
Aigio Liu a35e551fe9 fix #224 2021-05-08 19:50:01 +08:00
Aigio Liu ea237b84e1 fix #220 2021-05-08 10:36:49 +08:00
rmbgame 68340154f0 在删除时新增一个是否删除用户数据的提示 #165 2021-05-08 06:48:23 +08:00
rmbgame 6891fd4c0d commit test 2021-05-08 06:16:46 +08:00
rmbgame bf21f85bb0 优化代理速度
修复一些代理过程中产生的错误
2021-05-08 05:31:20 +08:00
rmbgame e513261507 更新库存游戏列表加载方式
修复潜在的闪退问题
2021-05-08 01:52:52 +08:00
Aigio Liu 43b6ad6544 UI Fix 2021-05-08 00:05:55 +08:00
Aigio Liu 93c8ebdbf4 update submodule 2021-05-07 23:46:36 +08:00
Aigio Liu 535e824032 改进 日志文件大小与数量 + UnifiedVersion 2021-05-07 23:36:29 +08:00
rmbgame 7f0361ae7d submodule 2021-05-07 23:07:47 +08:00
rmbgame 6a07bb4fd9 大量的窗口新增
进程操作修改
子模块更新
2021-05-07 23:07:47 +08:00
rmbgame 9faa8a8738 save 2021-05-07 23:07:47 +08:00
rmbgame 63ac0695bb update game laod action 2021-05-07 23:07:47 +08:00
Aigio Liu f1fd1cd42c 完成 Steam 一键快速登录 2021-05-07 18:00:05 +08:00
Aigio Liu 019b8e907f 改进 Hosts 操作提示文本
优化 代理服务中的潜在的空指针异常
2021-05-07 15:47:53 +08:00
Aigio Liu 0004c39f05 使用 IO.Pipes 代替 Runtime.Remoting 实现 IPC
实现 V1.X 中多开时显示第一个进程的主窗口
2021-05-07 14:59:50 +08:00
Aigio Liu c01031927e 改进 Steam 快速一键登录 70% 2021-05-07 00:11:03 +08:00
Aigio Liu 837b522170 修复 Steam 快速登录时候无法查看本地令牌 2021-05-07 00:11:02 +08:00
rmbgame 9921909559 修改账号切换ui错位问题
修改账号切换操作交互
添加关于内手动更新检测
修改更新弹窗为不绑定父窗口弹窗
2021-05-06 15:24:19 +08:00
rmbgame 2fdd78ce25 fix ui error 2021-05-06 15:24:08 +08:00
Mossimo 24faae27d6 fix bug 2021-05-06 00:25:42 +08:00
Mossimo 9306564fcf rm InitializeScriptList 2021-05-05 23:16:48 +08:00
332 changed files with 13917 additions and 2463 deletions
+3 -3
View File
@@ -10,12 +10,12 @@
[submodule "references/Steam4NET"]
path = references/Steam4NET
url = https://github.com/SteamTools-Team/Steam4NET.git
[submodule "references/WinAuth"]
path = references/WinAuth
url = https://github.com/SteamTools-Team/WinAuth.git
[submodule "references/Depressurizer"]
path = references/Depressurizer
url = https://github.com/SteamTools-Team/Depressurizer.git
[submodule "references/AvaloniaGif"]
path = references/AvaloniaGif
url = https://github.com/SteamTools-Team/AvaloniaGif
[submodule "references/WinAuth"]
path = references/WinAuth
url = https://github.com/SteamTools-Team/WinAuth
+2 -1
View File
@@ -4,7 +4,7 @@
「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.
![Release Download](https://img.shields.io/github/downloads/rmbadmin/SteamTools/latest/total?style=flat-square)
![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)
[![GitHub license](https://img.shields.io/github/license/rmbadmin/SteamTools?style=flat-square)](LICENSE)
[![GitHub Star](https://img.shields.io/github/stars/rmbadmin/SteamTools?style=flat-square)](https://github.com/rmbadmin/SteamTools/stargazers)
@@ -140,6 +140,7 @@ Read what we [milestones](https://github.com/SteamTools-Team/SteamTools/mileston
* [NPOI](https://github.com/nissl-lab/npoi)
* [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
* [AspNet.Security.OpenId.Providers](https://github.com/aspnet-contrib/AspNet.Security.OpenId.Providers)
* [AspNet.Security.OAuth.Providers](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers)
* [CefNet](https://github.com/CefNet/CefNet)
* [CefSharp](https://github.com/cefsharp/CefSharp)
* [React](https://github.com/facebook/react)
+2 -1
View File
@@ -4,7 +4,7 @@
「Steam++」是一个包含多种Steam工具功能的工具箱,此工具的大部分功能都是需要您下载安装Steam才能使用。
![Release Download](https://img.shields.io/github/downloads/rmbadmin/SteamTools/latest/total?style=flat-square)
![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)
[![GitHub license](https://img.shields.io/github/license/rmbadmin/SteamTools?style=flat-square)](LICENSE)
[![GitHub Star](https://img.shields.io/github/stars/rmbadmin/SteamTools?style=flat-square)](https://github.com/rmbadmin/SteamTools/stargazers)
@@ -152,6 +152,7 @@
* [NPOI](https://github.com/nissl-lab/npoi)
* [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore)
* [AspNet.Security.OpenId.Providers](https://github.com/aspnet-contrib/AspNet.Security.OpenId.Providers)
* [AspNet.Security.OAuth.Providers](https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers)
* [CefNet](https://github.com/CefNet/CefNet)
* [CefSharp](https://github.com/cefsharp/CefSharp)
* [React](https://github.com/facebook/react)
+631 -19
View File
File diff suppressed because it is too large Load Diff
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!--<TargetFrameworks>netstandard2.0;netstandard2.1;net5.0</TargetFrameworks>-->
@@ -32,8 +32,13 @@
<PackageReference Include="CefNet" Version="90.5.21109.1453" />
</ItemGroup>
<ItemGroup>
<Folder Include="Events\" />
<ItemGroup Condition=" Exists('$(MSBuildProjectDirectory)\..\..\..\src\Common.CoreLib\Properties\ThisAssembly.Version.cs') ">
<Compile Include="..\..\..\src\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\..\..\src\Common.CoreLib\Properties\ThisAssembly.Version.cs">
<Link>Properties\ThisAssembly.Version.cs</Link>
</Compile>
</ItemGroup>
</Project>
Binary file not shown.
+33 -22
View File
@@ -1,28 +1,39 @@
1. 修复 多个 GM.js 同时存在
2. 修复 GM.js 打包错误
3. 修复 手动添加 GM.js 重名替换导致出错
4. 修复 成就解锁窗口不显示
5. 新增 背景透明度 UI 设置
6. 调整 脚本列表 UI
7. 修复 代理过程中的闪退错误
8. 修复 库存游戏闪退错误
9. 修复 Discord 更新代理失效
10. 修复 hosts 闪退错误
11. 新增 Steam 快速登录
1. 改进 端口被占用检测进程名
2. 修复 部分 Toast 没有正确显示
3. 新增 账号注销功能
4. 改进 hosts 文件写入无权操作时显示的错误文本
5. 新增 快速登录后可绑定手机号
6. 新增 解绑快速登录账号
7. 新增 隐藏库存游戏
8. 新增 游戏功能-无边框窗口化
9. 新增 关于-更新日志
10. 新增 令牌加密设置,现在新增令牌默认将不启用本机加密
11. 修复 非正常退出程序时导致残留进程且无法启动程序
12. 改进 不再写入 C:\Users\用户名\AppData\Local 目录
13. 修复 文本框中某些符号可能无法正确输入
14. 改进 令牌排序上移下移
15. 新增 令牌导入导出
16. 新增 游戏时长挂机功能
17. 新增 Microsoft 账号快速登录与绑定
18. 新增 社区加速 hCaptcha 验证码 / EPIC 验证码 / artstation / v2ex
19. 修复 社区加速 discord 更新下载
| File | Checksum (SHA256) |
| ---- | ---- |
| Steam++_win_x86_v2.1.0.7z | SHA256 |
| Steam++_win_x86_v2.1.0.exe | SHA256 |
| Steam++_linux_x64_v2.1.0.7z | SHA256 |
| Steam++_linux_x64_v2.1.0.deb | SHA256 |
| Steam++_macos_x64_v2.1.0.dmg | SHA256 |
| Steam++_macos_arm64_v2.1.0.dmg | SHA256 |
| Steam++_android_arm_v2.1.0.apk | SHA256 |
| Steam++_android_arm64_v2.1.0.apk | SHA256 |
| Steam++_win_arm64_v2.1.0.7z | SHA256 |
| Steam++_win_arm64_v2.1.0.exe | SHA256 |
| Steam++_win_x86_v2.3.0.7z | SHA256 |
| Steam++_win_x86_v2.3.0.exe | SHA256 |
| Steam++_win_x86_v2.3.0.msix | SHA256 |
| Steam++_win_arm64_v2.3.0.7z | SHA256 |
| Steam++_win_arm64_v2.3.0.exe | SHA256 |
| Steam++_win_arm64_v2.3.0.msix | SHA256 |
| Steam++_linux_x64_v2.3.0.7z | SHA256 |
| Steam++_linux_x64_v2.3.0.deb | SHA256 |
| Steam++_macos_x64_v2.3.0.dmg | SHA256 |
| Steam++_macos_arm64_v2.3.0.dmg | SHA256 |
| Steam++_android_v2.3.0.apk | SHA256 |
| Steam++_android_arm64_v2.3.0.apk | SHA256 |
| Steam++_android_arm_v2.3.0.apk | SHA256 |
***
由于程序体积较大,推荐从 [官网 https://steampp.net](https://steampp.net) 中下载
由于程序体积较大,推荐从 [官网 https://steampp.net](https://steampp.net) 中下载
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

+3
View File
@@ -11,6 +11,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -1,4 +1,4 @@
<Project Sdk="MSBuild.Sdk.Extras">
<Project Sdk="MSBuild.Sdk.Extras">
<PropertyGroup>
<TargetFramework>MonoAndroid10.0</TargetFramework>
@@ -15,6 +15,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -10,6 +10,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -1,4 +1,4 @@
using System.Threading.Tasks;
using System.Threading.Tasks;
namespace System.Application.Services
{
@@ -33,7 +33,46 @@ namespace System.Application.Services
/// <returns></returns>
ValueTask<string?> D(byte[]? value, string? secondaryPassword = null);
/// <inheritdoc cref="D(byte[]?, string?)"/>
ValueTask<(string? content, DResultCode resultCode)> D2(byte[]? value, string? secondaryPassword = null);
/// <inheritdoc cref="D(byte[]?, string?)"/>
ValueTask<byte[]?> DB(byte[]? value, string? secondaryPassword = null);
/// <inheritdoc cref="D(byte[]?, string?)"/>
ValueTask<(byte[]? content, DResultCode resultCode)> DB2(byte[]? value, string? secondaryPassword = null);
public enum DResultCode
{
/// <summary>
/// 成功
/// </summary>
Success = 200,
/// <summary>
/// 嵌入 Aes 失败
/// </summary>
EmbeddedAesFail = 901,
/// <summary>
/// 仅本机失败
/// </summary>
LocalFail,
/// <summary>
/// 二级密码失败
/// </summary>
SecondaryPasswordFail,
/// <summary>
/// 密文值不正确
/// </summary>
IncorrectValueFail,
/// <summary>
/// 转换字符串失败
/// </summary>
UTF8GetStringFail,
}
}
}
@@ -2,6 +2,7 @@ using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using static System.Application.Services.ISecurityService;
namespace System.Application.Services.Implementation
{
@@ -76,23 +77,35 @@ namespace System.Application.Services.Implementation
public async ValueTask<string?> D(byte[]? value, string? secondaryPassword)
{
var value2 = await DB(value, secondaryPassword);
if (value2 == null || !value2.Any()) return null;
(var content, var _) = await D2(value, secondaryPassword);
return content;
}
public async ValueTask<(string? content, DResultCode resultCode)> D2(byte[]? value, string? secondaryPassword)
{
(var content, var resultCode) = await DB2(value, secondaryPassword);
if (resultCode != DResultCode.Success || content == null || !content.Any()) return (null, resultCode);
try
{
return Encoding.UTF8.GetString(value2);
var content_ = Encoding.UTF8.GetString(content);
return (content_, DResultCode.Success);
}
catch
{
return null;
return (null, DResultCode.UTF8GetStringFail);
}
}
public async ValueTask<byte[]?> DB(byte[]? value, string? secondaryPassword)
{
if (value == null) return value;
if (value.Length == 0) return value;
if (value.Length <= sizeof(int)) return null;
(var content, var _) = await DB2(value, secondaryPassword);
return content;
}
public async ValueTask<(byte[]? content, DResultCode resultCode)> DB2(byte[]? value, string? secondaryPassword)
{
if (value == null || value.Length == 0) return (value, DResultCode.Success);
if (value.Length <= sizeof(int)) return (null, DResultCode.IncorrectValueFail);
var d_type = (EncryptionMode)BitConverter.ToInt32(value, 0);
switch (d_type)
@@ -100,27 +113,37 @@ namespace System.Application.Services.Implementation
case EncryptionMode.EmbeddedAes:
var value_1 = UnConcat(value);
var value_1_r = ea.DB(value_1);
return value_1_r;
return (value_1_r, value_1_r == null ?
DResultCode.EmbeddedAesFail : DResultCode.Success);
case EncryptionMode.EmbeddedAesWithLocal:
var value_2 = UnConcat(value);
var value_2_local = await local.DB(value_2);
if (value_2_local == null) return (null, DResultCode.LocalFail);
var value_2_r = ea.DB(value_2_local);
return value_2_r;
return (value_2_r, value_2_r == null ?
DResultCode.EmbeddedAesFail : DResultCode.Success);
case EncryptionMode.EmbeddedAesWithSecondaryPassword:
if (string.IsNullOrWhiteSpace(secondaryPassword)) return null;
if (string.IsNullOrWhiteSpace(secondaryPassword))
return (null, DResultCode.SecondaryPasswordFail);
var value_3 = UnConcat(value);
var value_3_sp = sp.DB(value_3, secondaryPassword);
if (value_3_sp == null) return (null, DResultCode.SecondaryPasswordFail);
var value_3_r = ea.DB(value_3_sp);
return value_3_r;
return (value_3_r, value_3_r == null ?
DResultCode.EmbeddedAesFail : DResultCode.Success);
case EncryptionMode.EmbeddedAesWithSecondaryPasswordWithLocal:
if (string.IsNullOrWhiteSpace(secondaryPassword)) return null;
if (string.IsNullOrWhiteSpace(secondaryPassword))
return (null, DResultCode.SecondaryPasswordFail);
var value_4 = UnConcat(value);
var value_4_local = await local.DB(value_4);
if (value_4_local == null) return (null, DResultCode.LocalFail);
var value_4_sp = sp.DB(value_4_local, secondaryPassword);
if (value_4_sp == null) return (null, DResultCode.SecondaryPasswordFail);
var value_4_r = ea.DB(value_4_sp);
return value_4_r;
return (value_4_r, value_4_r == null ?
DResultCode.EmbeddedAesFail : DResultCode.Success);
default:
return null;
return (null, DResultCode.IncorrectValueFail);
}
}
}
+4 -1
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
@@ -10,6 +10,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -1,4 +1,4 @@
using System.Threading.Tasks;
using System.Threading.Tasks;
using Xamarin.Essentials;
namespace System.Security
@@ -30,5 +30,11 @@ namespace System.Security
var result = SecureStorage.Remove(key);
return Task.FromResult(result);
}
async Task<bool> IStorage.ContainsKeyAsync(string key)
{
var result = await SecureStorage.GetAsync(key);
return result != null;
}
}
}
@@ -1,4 +1,4 @@
using System.Application.Repositories;
using System.Application.Repositories;
using System.Application.Services;
using System.Security.Cryptography;
using System.Threading.Tasks;
@@ -57,5 +57,12 @@ namespace System.Security
var result = await DeleteAsync(key);
return result > 0;
}
async Task<bool> IStorage.ContainsKeyAsync(string key)
{
key = GetKey(key);
var item = await FirstOrDefaultAsync(x => x.Id == key);
return item != null;
}
}
}
@@ -1,4 +1,4 @@
namespace System.Application.Columns
namespace System.Application.Columns
{
/// <summary>
/// 手机号码
@@ -7,6 +7,8 @@
{
/// <inheritdoc cref="IPhoneNumber"/>
string? PhoneNumber { get; set; }
public const int Db_MaxLength_PhoneNumber = 20;
}
/// <inheritdoc cref="IPhoneNumber"/>
@@ -0,0 +1,17 @@
using System.ApplicationModel;
namespace System.ApplicationModel
{
public static class DesktopBridgeHelper
{
public static bool IsDesktopBridge { internal get; set; }
}
}
namespace System
{
partial class DI
{
public static bool IsDesktopBridge => DesktopBridgeHelper.IsDesktopBridge;
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.1;netcoreapp3.1</TargetFrameworks>
+2 -2
View File
@@ -1,4 +1,4 @@
#if !NOT_DI
#if !NOT_DI
using Microsoft.Extensions.DependencyInjection;
#endif
using System.Linq;
@@ -12,7 +12,7 @@ namespace System
/// <summary>
/// 依赖注入服务组(DependencyInjection)
/// </summary>
public static class DI
public static partial class DI
{
#if !NOT_DI
@@ -0,0 +1,20 @@
using System.Diagnostics;
// ReSharper disable once CheckNamespace
namespace System
{
public static class ProcessExtensions
{
public static ProcessModule? TryGetMainModule(this Process process)
{
try
{
return process.MainModule;
}
catch
{
return null;
}
}
}
}
@@ -1,4 +1,5 @@
namespace System.Extensions
// ReSharper disable once CheckNamespace
namespace System
{
public static partial class StringExtensions
{
@@ -1,4 +1,4 @@
// https://github.com/aspnet/AspNetIdentity/blob/master/src/Microsoft.AspNet.Identity.Core/AsyncHelper.cs
// https://github.com/aspnet/AspNetIdentity/blob/master/src/Microsoft.AspNet.Identity.Core/AsyncHelper.cs
using System.Globalization;
using System.Threading;
using System.Threading.Tasks;
@@ -8,7 +8,7 @@ namespace System
{
public static class TaskExtensions
{
static readonly TaskFactory _myTaskFactory = new TaskFactory(CancellationToken.None,
static readonly TaskFactory _myTaskFactory = new(CancellationToken.None,
TaskCreationOptions.None, TaskContinuationOptions.None, TaskScheduler.Default);
public static TResult RunSync<TResult>(this Func<Task<TResult>> func)
+12
View File
@@ -54,5 +54,17 @@ namespace System
public const string APNG = ".apng";
public const string EXE = ".exe";
public const string _7Z = ".7z";
public const string APPX = ".appx";
public const string MSIX = ".msix";
public const string APPX_Bundle = ".appxbundle";
public const string MSIX_Bundle = ".msixbundle";
public const string AppInstaller = ".appinstaller";
}
}
+5 -2
View File
@@ -1,4 +1,5 @@
using System.IO;
using System.Diagnostics.CodeAnalysis;
using System.IO;
#if !NET35 && !NOT_XE
using Xamarin.Essentials;
#endif
@@ -219,8 +220,10 @@ namespace System
return ioPath;
}
public static FileStream OpenRead(string filePath)
[return: NotNullIfNotNull("filePath")]
public static FileStream? OpenRead(string? filePath)
{
if (filePath == null) return null;
var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete);
return fileStream;
}
+11 -1
View File
@@ -1,4 +1,4 @@
namespace System
namespace System
{
/// <summary>
/// MIME 类型
@@ -62,5 +62,15 @@
public const string MP4 = "video/mp4";
public const string APNG = "image/apng";
public const string APPX = "application/appx";
public const string MSIX = "application/msix";
public const string APPX_Bundle = "application/appxbundle";
public const string MSIX_Bundle = "application/msixbundle";
public const string AppInstaller = "application/appinstaller";
}
}
@@ -31,7 +31,7 @@ namespace System.Net.Http
/// <summary>
/// 默认超时时间,16秒
/// </summary>
public static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(16);
public static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(11);
static readonly Lazy<int> mDefaultTimeoutTotalMilliseconds = new(() => DefaultTimeout.TotalMilliseconds.ToInt32());
@@ -0,0 +1,6 @@
using System.Reflection;
using static System.Properties.ThisAssembly;
[assembly: AssemblyFileVersion(Version)]
[assembly: AssemblyInformationalVersion(InfoVersion)]
[assembly: AssemblyVersion(Version)]
@@ -3,11 +3,9 @@ using System.Runtime.CompilerServices;
using static System.Properties.ThisAssembly;
[assembly: SuppressIldasm]
[assembly: AssemblyTitle(AssemblyTrademark)]
[assembly: AssemblyTrademark(AssemblyTrademark)]
[assembly: AssemblyDescription(AssemblyDescription)]
[assembly: AssemblyProduct(AssemblyProduct)]
[assembly: AssemblyCopyright(AssemblyCopyright)]
[assembly: AssemblyCompany(AssemblyCompany)]
[assembly: AssemblyFileVersion(Version)]
[assembly: AssemblyInformationalVersion(InfoVersion)]
[assembly: AssemblyVersion(Version)]
[assembly: AssemblyCompany(AssemblyCompany)]
@@ -0,0 +1,9 @@
namespace System.Properties
{
static partial class ThisAssembly
{
public const string Version = "2.3.0";
public const string InfoVersion = Version /*+ "-beta"*/;
}
}
@@ -1,11 +1,7 @@
namespace System.Properties
{
public static class ThisAssembly
public static partial class ThisAssembly
{
public const string Version = "2.1.0";
public const string InfoVersion = Version + "-beta";
#if NETSTANDARD2_1 || NETCOREAPP2_1_OR_GREATER
static readonly Lazy<string> mVersionDisplay = new(() =>
{
+4 -2
View File
@@ -1,10 +1,10 @@
using System.Text;
using System.Text;
using System.Threading.Tasks;
namespace System.Security
{
/// <summary>
/// 为键/值对提供简单的安全存储
/// 为键/值对提供简单的安全存储(值类型泛型与非泛型重载方法不兼容)
/// </summary>
/// <remarks>
/// <para>每个平台使用平台提供的本机API来安全存储数据:</para>
@@ -128,6 +128,8 @@ namespace System.Security
}
}
Task<bool> ContainsKeyAsync(string key);
static IStorage Instance => DI.Get<IStorage>();
#endregion
+31
View File
@@ -3,12 +3,14 @@ using MessagePack;
#endif
#if !NOT_NJSON
using Newtonsoft.Json;
using System;
#endif
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Threading;
#if !NOT_NJSON
using static Newtonsoft.Json.JsonConvert;
@@ -332,4 +334,33 @@ namespace System
};
}
}
}
namespace Newtonsoft.Json.Serialization
{
/// <summary>
/// 将忽略 <see cref="JsonPropertyAttribute"/> 属性
/// </summary>
public sealed class IgnoreJsonPropertyContractResolver : DefaultContractResolver
{
readonly bool useCamelCase;
public IgnoreJsonPropertyContractResolver(bool useCamelCase = false)
{
this.useCamelCase = useCamelCase;
}
protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
{
var result = base.CreateProperties(type, memberSerialization);
foreach (var item in result)
{
item.PropertyName = item.UnderlyingName == null ? null :
(useCamelCase ?
JsonNamingPolicy.CamelCase.ConvertName(item.UnderlyingName) :
item.UnderlyingName);
}
return result;
}
}
}
@@ -1,4 +1,4 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
using Microsoft.Win32;
@@ -198,6 +198,12 @@ namespace System.Application
return controller.NotFound();
}
public static IActionResult GetEnv(ControllerBase controller, IWebHostEnvironment environment)
{
var content = $"<h1>{environment.EnvironmentName}</h1>";
return controller.Content(content, MediaTypeNames.HTML);
}
/// <inheritdoc cref="Path2.InitFileSystem(Func{string}, Func{string})"/>
public static void InitFileSystem(IWebHostEnvironment environment)
{
+9 -6
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
@@ -10,6 +10,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -29,12 +32,12 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.6" />
<!--<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.2" />-->
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.5" />
<PackageReference Include="NLog" Version="4.7.9" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.6" />
<PackageReference Include="NLog" Version="4.7.10" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.12.0" />
</ItemGroup>
</Project>
@@ -1,4 +1,4 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using System.Application.Repositories;
using System.Linq;
using System.Linq.Expressions;
@@ -49,5 +49,11 @@ namespace System.Security
var result = await DeleteAsync(key);
return result > 0;
}
async Task<bool> IStorage.ContainsKeyAsync(string key)
{
var result = await Get(key).AnyAsync();
return result;
}
}
}
+1
View File
@@ -44,6 +44,7 @@
- 目标框架使用 .NET Framework 3.5 并通过 App.config 配置允许在 4.X 中运行 实现在 Windows 上兼容所有的运行库环境
- Launch **启动项**
- ST.Client.Desktop.Avalonia.App **桌面客户端**
- ST.Client.Desktop.Avalonia.App.Bridge* **Desktop Bridge**
- ST.Client.Desktop.Avalonia.Demo.App **桌面客户端(UI演示)**
- ST.Client.Mobile.Droid.App **Android 客户端**
- ST.Client.Mobile.iOS.App **iOS 客户端**
@@ -1,4 +1,4 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using System.Application.Columns;
using System.Application.Entities;
@@ -64,7 +64,7 @@ namespace System
if (pOrder.IsAssignableFrom(type))
{
modelBuilder.Entity(type, p => p.HasIndex(nameof(IOrder.Order)));
Log.Info(TAG, "IOrder type: {0}", type.FullName);
//Log.Info(TAG, "IOrder type: {0}", type.FullName);
}
#endregion
@@ -73,10 +73,11 @@ namespace System
if (pSoftDeleted.IsAssignableFrom(type))
{
// https://docs.microsoft.com/zh-cn/ef/core/querying/filters
modelBuilder.Entity(type, p => p.HasIndex(nameof(ISoftDeleted.SoftDeleted)));
modelBuilder.Entity(type).HasQueryFilter(SoftDeletedQueryFilter(type));
softDeleted.Add(type);
Log.Info(TAG, "IsSoftDeleted type: {0}", type.FullName);
//Log.Info(TAG, "IsSoftDeleted type: {0}", type.FullName);
}
#endregion
@@ -86,7 +87,7 @@ namespace System
if (pCreationTime.IsAssignableFrom(type))
{
modelBuilder.Entity(type, p => p.Property(nameof(ICreationTime.CreationTime)).HasDefaultValueSql(SQLStrings.SYSDATETIMEOFFSET).IsRequired());
Log.Info(TAG, "ICreationTime type: {0}", type.FullName);
//Log.Info(TAG, "ICreationTime type: {0}", type.FullName);
}
#endregion
@@ -98,7 +99,12 @@ namespace System
modelBuilder.Entity(type, p => p.Property(nameof(IUpdateTime.UpdateTime)).HasDefaultValueSql(SQLStrings.SYSDATETIMEOFFSET).IsRequired());
modelBuilder.Entity(type, p => p.Property(nameof(IUpdateTime.UpdateTime)).ValueGeneratedOnAddOrUpdate()
.Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Save));
Log.Info(TAG, "IUpdateTime type: {0}", type.FullName);
//Log.Info(TAG, "IUpdateTime type: {0}", type.FullName);
}
if (pPhoneNumber.IsAssignableFrom(type))
{
modelBuilder.Entity(type, p => p.Property(nameof(IPhoneNumber.PhoneNumber)).HasMaxLength(IPhoneNumber.Db_MaxLength_PhoneNumber));
}
#endregion
@@ -108,7 +114,7 @@ namespace System
if (pkGuid.IsAssignableFrom(type))
{
modelBuilder.Entity(type, b => b.Property(nameof(IEntity<Guid>.Id)).HasDefaultValueSql(SQLStrings.NEWSEQUENTIALID));
Log.Info(TAG, "INEWSEQUENTIALID type: {0}", type.FullName);
//Log.Info(TAG, "INEWSEQUENTIALID type: {0}", type.FullName);
}
#endregion
@@ -121,6 +127,7 @@ namespace System
public static readonly Type pCreationTime = typeof(ICreationTime);
public static readonly Type pUpdateTime = typeof(IUpdateTime);
public static readonly Type pkGuid = typeof(INEWSEQUENTIALID);
public static readonly Type pPhoneNumber = typeof(IPhoneNumber);
/// <summary>
/// https://docs.microsoft.com/zh-cn/ef/core/modeling/shadow-properties#property-bag-entity-types
/// </summary>
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
@@ -10,6 +10,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -23,8 +26,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.5" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.6" />
<PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="5.1.30" />
</ItemGroup>
</Project>
@@ -10,6 +10,9 @@
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.cs">
<Link>Properties\AssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\AssemblyInfo.Version.cs">
<Link>Properties\AssemblyInfo.Version.cs</Link>
</Compile>
<Compile Include="..\Common.CoreLib\Properties\InternalsVisibleTo.cs">
<Link>Properties\InternalsVisibleTo.cs</Link>
</Compile>
@@ -1,4 +1,4 @@
using System.Application.Columns;
using System.Application.Columns;
using System.Runtime.CompilerServices;
namespace System
@@ -78,14 +78,14 @@ namespace System
/// <returns></returns>
public static FormattableString SoftDeleteFromTableNameWhereIdEqual(string tableName, object id)
{
var sql = UpdateFrom + tableName + " set " + nameof(ISoftDeleted.SoftDeleted) + " = 1" + WhereIdEqual_0;
var sql = Update + tableName + " set " + nameof(ISoftDeleted.SoftDeleted) + " = 1" + WhereIdEqual_0;
return FormattableStringFactory.Create(sql, id);
}
/// <summary>
/// "update from "
/// "update "
/// </summary>
public const string UpdateFrom = "update from ";
public const string Update = "update ";
/// <summary>
/// " where Id in ("
+5 -5
View File
@@ -12,17 +12,17 @@
- 🎁 可与已有的 ASP.NET Core MVC、Razor Pages 项目无缝集成。
## 🌐 [ASP.NET Core Blazor 简介](https://docs.microsoft.com/zh-cn/aspnet/core/blazor/?view=aspnetcore-5.0)
Blazor 是一个使用 [.NET](/dotnet/standard/tour) 生成交互式客户端 Web UI 的框架:
Blazor 是一个使用 [.NET](https://docs.microsoft.com/zh-cn/dotnet/standard/tour) 生成交互式客户端 Web UI 的框架:
* 使用 [C#](/dotnet/csharp/) 代替 [JavaScript](https://www.javascript.com) 来创建信息丰富的交互式 UI。
* 使用 [C#](https://docs.microsoft.com/zh-cn/dotnet/csharp/) 代替 [JavaScript](https://www.javascript.com) 来创建信息丰富的交互式 UI。
* 共享使用 .NET 编写的服务器端和客户端应用逻辑。
* 将 UI 呈现为 HTML 和 CSS,以支持众多浏览器,其中包括移动浏览器。
* 与新式托管平台(如 [Docker](/dotnet/standard/microservices-architecture/container-docker-introduction/index))集成。
* 与新式托管平台(如 [Docker](https://docs.microsoft.com/zh-cn/dotnet/standard/microservices-architecture/container-docker-introduction/index))集成。
使用 .NET 进行客户端 Web 开发可提供以下优势:
* 使用 C# 代替 JavaScript 来编写代码。
* 利用现有的 [.NET 库](/dotnet/standard/class-libraries)生态系统。
* 利用现有的 [.NET 库](https://docs.microsoft.com/zh-cn/dotnet/standard/class-libraries)生态系统。
* 在服务器和客户端之间共享应用逻辑。
* 受益于 .NET 的性能、可靠性和安全性。
* 在 Windows、Linux 和 macOS 上使用 [Visual Studio](https://visualstudio.microsoft.com) 保持高效工作。
@@ -39,7 +39,7 @@ Blazor 是一个使用 [.NET](/dotnet/standard/tour) 生成交互式客户端 We
| [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br> Edge / IE | [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera | [<img src="https://cdn.jsdelivr.net/gh/alrra/browser-logos/src/electron/electron_48x48.png" alt="Electron" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Electron |
| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| Edge 16 / IE 11† | 522 | 57 | 11 | 44 | Chromium 57 |
| Edge 16 / IE 11† | 52 | 57 | 11 | 44 | Chromium 57 |
> 由于 [WebAssembly](https://webassembly.org) 的限制,Blazor WebAssembly 不支持 IE 浏览器,但 Blazor Server 支持 IE 11†。 详见[官网说明](https://docs.microsoft.com/en-us/aspnet/core/blazor/supported-platforms?view=aspnetcore-3.1&WT.mc_id=DT-MVP-5003987)。
Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

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