📝 Update Doc

This commit is contained in:
Aigio Liu
2023-06-24 20:57:00 +08:00
parent 0a9f1d273c
commit b48a7dae61
7 changed files with 198 additions and 330 deletions
+3 -3
View File
@@ -28,9 +28,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "5.Plugins", "5.Plugins", "{
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Document", "Document", "{1E1DFB1C-55FC-4D74-9791-6A692E647034}"
ProjectSection(SolutionItems) = preProject
doc\download-guide.en.md = doc\download-guide.en.md
doc\download-guide.md = doc\download-guide.md
doc\file-system.md = doc\file-system.md
doc\openwrt.md = doc\openwrt.md
doc\publish.md = doc\publish.md
doc\release-keylol.md = doc\release-keylol.md
EndProjectSection
EndProject
@@ -176,7 +176,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ValveKeyValue", "ref\SteamC
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BD.SteamClient.Models.Protobuf", "ref\SteamClient\src\BD.SteamClient.Models.Protobuf\BD.SteamClient.Models.Protobuf.csproj", "{4D34BE4D-2233-46ED-939C-EAAEF608F5B7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BD.WTTS.Client.Tools.Publish", "src\BD.WTTS.Client.Tools.Publish\BD.WTTS.Client.Tools.Publish.csproj", "{BC309EC9-D7A2-4A28-BE60-2E5532DE073D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BD.WTTS.Client.Tools.Publish", "src\BD.WTTS.Client.Tools.Publish\BD.WTTS.Client.Tools.Publish.csproj", "{BC309EC9-D7A2-4A28-BE60-2E5532DE073D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
-69
View File
@@ -1,69 +0,0 @@
<h1 align="center">⬇️ Download Guide</h1>
<div align="center">
English | [Simplified Chinese](./download-guide.md)
</div>
## Windows
- Store version
- Install in Microsoft Store
- User data will be stored in ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalState```
- Portable version
- The compressed package can be decompressed to any folder and cannot be run in the compressed software
- User data will be stored in the program root directory ```\AppData```
- With a file extension of 7z, for example ```Steam++_win_x64_v3.0.0.7z```.
- Installation version
- The installation package currently only supports Simplified Chinese
- The installer will write software information in the registry
- User data will be stored in ```%LocalAppData%\Steam++```
- With a file extension of exe, for example ```Steam++_win_x64_v3.0.0.exe```.
- 64-bit applications (recommended)
- For 64-bit operating systems only, [Determine whether your computer is running a 32-bit ersionor 64-bit version of the Windows operating system](https://support.microsoft.com/n-us/topic/etermine-whether-your-computer-is-running-a-32-bit-version-or-64-bit-version-f-the-windows-perating-system-1b03ca69-ac5e-4b04-827b-c0c47145944b).
- The file name **contains** x64, such as ```Steam++_win_x64_v3.0.0.7z```.
- 32-bit application
- For 32-bit or 64-bit operating systems.
- The file name **contains** x86, such as ```Steam++_win_x86_v3.0.0.7z```.
- ~~ARM64 application~~(Adapting…)
- It is applicable to devices that use Arm64 CPU, such as **Microsoft Surface Pro X/Surface ro 95G** and other devices that use Qualcomm Snapdragon and MediaTek mobile processors.
- The file name **contains** arm64, such as ```Steam++_win_arm64_v3.0.0.7z```.
- Independent application ([SCD](https://learn.microsoft.com/en-us/dotnet/core/deploying/publish-elf-contained)) will include. NET runtime in the application. Users of this pplication do not eed to install. NET before running the application. (Recommended)
- The file name **does not contains** fde, such as ```Steam++_win_x64_v3.0.0.7z```.
- Framework-dependent application ([FDE](https://learn.microsoft.com/en-us/dotnet/core/eploying/publish-framework-dependent)), the application does not contain the. NET runtime nd library, but nly the application and third-party dependencies.
- The file name **contains** fde, such as ```Steam++_win_x64_fde_v3.0.0.7z```.
- Compared with independent applications, framework-dependent applications can reduce the disk space occupied by this application because of sharing the runtime, and the runtime can be repaired by Windows Update with security patches.
- The following runtime needs to be installed
- ASP.NET Runtime 7.x
- ASP.NET Core Runtime 7.x
- This application does not require IIS support. You can only install the relevant ntime instead of the Hosting Bundle.
## macOS
- ARM64 application
- Applicable to Mac using ARM64 (Apple Silicon) chip, such as **Apple M1/M2**.
- The file name **contains** arm64, such as ```Steam++_macos_arm64_v3.0.0.dmg```.
- 64-bit applications
- For Mac using Intel's x64 (x86-64) chip.
- The file name **contains** x64, such as ```Steam++_macos_x64_v3.0.0.dmg```.
- ~~General package~~(Adapting…)
- All versions of binaries are included in this package and are applicable to all supported evices, but the file size is large.
## Linux
- 64-bit applications
- Applicable to devices using Intel and AMD's x64 (x86-64) chips.
- The file name **contains** x64, such as ```Steam++_linux_x64_v3.0.0.tar.zst```.
- ARM64 application
- Applicable to devices using ARM64 chips, such as **Raspberry Pi Model 3+**.
- The file name **contains** x64, such as ```Steam++_linux_arm64_v3.0.0.tar.zst```.
## Android
- General package (recommended)
- All versions of binaries are included in this package and are applicable to all supported vices, but the file size is large.
- The file name **only contains** android, such as ```Steam++_android_v3.0.0.apk```.
- ~~arm64-v8a~~(Deprecated…)
- Applicable to the use of current mainstream mobile phones or tablet devices
- The file name **contains** arm64-v8a, such as ```Steam++_arm64-v8a_v3.0.0.apk```.
- ~~armeabi-v7a~~(Deprecated…)
- It is applicable to the use of old mobile phones or tablet devices, usually those roducedbefore the second half of **2014**.
- The file name **contains** armeabi_v7a, such as ```Steam++_armeabi_v7a_v3.0.0.apk```.
- ~~x86_64~~(Deprecated…)
- Applicable to devices using Intel and AMD's x64 (x86-64) chips, such as simulators on PC.
- The file name **contains** x64, such as ```Steam++_x64_v3.0.0.apk```.
## ~~iOS/iPadOS~~(In development…) <img src="../res/brands/apple.svg" width="16" height="16" />
- Download in App Store
-77
View File
@@ -1,77 +0,0 @@
<h1 align="center">⬇️ 下载指南</h1>
<div align="center">
[English](./download-guide.en.md) | 简体中文
</div>
## Windows
- 应用商店版
- 在 Microsoft 应用商店中安装
- 用户数据将存放于 ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalState```
- 便携版
- 压缩包解压到任意文件夹即可,不可在压缩软件中运行
- 用户数据将存放于程序根目录下 ```\AppData```
- 文件扩展名为 7z 的,例如 ```Steam++_win_x64_v3.0.0.7z```。
- 安装版
- 安装包当前仅支持简体中文
- 安装程序将会在注册表中写入软件信息
- 用户数据将存放于 ```%LocalAppData%\Steam++```
- 文件扩展名为 exe 的,例如 ```Steam++_win_x64_v3.0.0.exe```。
- 64 位应用程序(推荐)
- 仅适用于 64 位操作系统,[确定您的计算机运行的是 32 位版本还是 64 位版本的 Windows 操作系统](https://pport.microsoft.com/zh-cn/topic/%E7%A1%AE%E5%AE%9A%E6%82%A8%E7%9A%84%E8%AE%1%E7%AE%97%6%9C%BAE8%BF%90%E8%A1%8C%E7%9A%84%E6%98%AF-32-%E4%BD%8D%E7%89%88%E6%9C%C%E8%BF%98%E6%98%F-64-%E4%BD%D%E7%89%88%E6%9C%AC%E7%9A%84-windows-%E6%93%8D%E4%BD%C%E7%B3%BB%E7%BB%F-1b03ca69-c5e-4b04-827b-c0c47145944b)。
- 文件名中**包含** x64 的,例如 ```Steam++_win_x64_v3.0.0.exe```。
- 32 位应用程序
- 适用于 32 位或 64 位操作系统。
- 文件名中**包含** x86 的,例如 ```Steam++_win_x86_v3.0.0.exe```。
- ~~ARM64 应用程序~~(适配中…)
- 适用于使用 Arm64 CPU 的设备,例如 **微软 Surface Pro X/Surface Pro 9 5G** 等使用高通骁龙、联发科动处理的设备。
- 文件名中**包含** arm64 的,例如 ```Steam++_win_arm64_v3.0.0.exe```。
- 独立应用([SCD](https://learn.microsoft.com/zh-cn/dotnet/core/deploying/#publish-self-ontained)),会应用中包含 .NET 运行时,该应用的用户无需在运行应用前安装 .NET。 (推荐)
- 文件名中**不包含** fde 的,例如 ```Steam++_win_x64_v3.0.0.exe```。
- 依赖于框架的应用([FDE](https://learn.microsoft.com/zh-cn/dotnet/core/deploying/#publish-ramework-ependent)),则该应用不包含 .NET 运行时和库,而仅包含该应用和第三方依赖项。
- 文件名中**包含** fde 的,例如 ```Steam++_win_x64_fde_v3.0.0.exe```。
- 依赖于框架的应用相比独立应用因共享运行时,可减少本应用占用的磁盘空间,且运行时可由 Windows 更新进行安全补丁修复。
- 需要安装以下运行时
- ASP.NET 运行时 7.x
- ASP.NET Core 运行时 7.x
- 此应用不需要 IIS 支持,可仅安装相关运行时而不是托管捆绑包。
## macOS
- ARM64 应用程序
- 适用于使用 ARM64(Apple Silicon) 芯片的 Mac,例如 **Apple M1/M2**。
- 文件名中**包含** x64 的,例如 ```Steam++_macos_arm64_v3.0.0.dmg```。
- 64 位应用程序
- 适用于使用 Intel 的 x64(x86-64) 芯片的 Mac。
- 文件名中**包含** x64 的,例如 ```Steam++_macos_x64_v3.0.0.dmg```。
- ~~通用包~~(适配中…)
- 所有版本的二进制文件都包含在此包中,适用于所有支持的设备,但文件体积较大。
## Linux
- 64 位应用程序
- 适用于使用 Intel、AMD 的 x64(x86-64) 芯片的设备。
- 文件名中**包含** x64 的,例如 ```Steam++_linux_x64_v3.0.0.tar.zst```。
- ARM64 应用程序
- 适用于使用 ARM64 芯片的设备,例如 **Raspberry Pi Model 3+**。
- 文件名中**包含** x64 的,例如 ```Steam++_linux_arm64_v3.0.0.tar.zst```。
## Android
- 通用包(推荐)
- 所有版本的二进制文件都包含在此包中,适用于所有支持的设备,但文件体积较大。
- 文件名中**仅包含** android 的,例如 ```Steam++_android_v3.0.0.apk```。
- ~~arm64-v8a~~(已弃用…)
- 适用于使用目前主流的手机或平板设备
- 文件名中**包含** arm64_v8a 的,例如 ```Steam++_android_arm64_v8a_v3.0.0.apk```。
- ~~armeabi-v7a~~(已弃用…)
- 适用于使用老旧的手机或平板设备,通常为 **2014** 年下半年之前生产的设备。
- 文件名中**包含** armeabi_v7a 的,例如 ```Steam++_android_armeabi_v7a_v3.0.0.apk```。
- ~~x86_64~~(已弃用…)
- 适用于使用 Intel、AMD 的 x64(x86-64) 芯片的设备,例如 PC 上的模拟器。
- 文件名中**包含** x64 的,例如 ```Steam++_android_x64_v3.0.0.apk```。
## ~~iOS/iPadOS~~(开发中…) <img src="../res/brands/apple.svg" width="16" height="16" />
- 在 App Store 中下载
<!--
TODO: new fileName
Steam++_win_x64_v3.0.0.exe
Steam++_win_x64_v3.0.0.7z
Steam++_win_x64_with_runtime_v3.0.0.exe
Steam++_win_x64_with_runtime_v3.0.0.7z
-->
+21
View File
@@ -0,0 +1,21 @@
# Steam++ v3.X FileSystem Document
### 📁 Storage
- AppData
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalState```
- Windows ```\AppData``` or ```%LocalAppData%\Steam++```
- macOS ```~/Library/Steam++```
- Linux ```$XDG_DATA_HOME/Steam++``` or ```$HOME/.local/share/Steam++```
- Android ```/data/data/net.steampp.app/files```
- Cache
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache```
- Windows ```\Cache``` or ```%Tmp%\Steam++```
- macOS ```~/Library/Caches/Steam++```
- Linux ```$XDG_CACHE_HOME/Steam++``` or ```$HOME/.cache/Steam++```
- Android ```/data/data/net.steampp.app/cache```
- Logs
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache\Logs```
- Windows ```\Logs``` or ```%Tmp%\Steam++\Logs```
- macOS ```~/Library/Caches/Steam++/Logs```
- Linux ```$XDG_CACHE_HOME/Steam++/Logs``` or ```$HOME/.cache/Steam++/Logs```
- Android ```/data/data/net.steampp.app/cache/Logs```
+172
View File
@@ -0,0 +1,172 @@
# Steam++ v3.X Publish Document
### Assets
- Windows
- x64
- ```Steam++_vx.y.z_win_x64.msix```
- ```Steam++_vx.y.z_win_x64.7z```
- x86
- ```Steam++_vx.y.z_win_x86.msix```
- ```Steam++_vx.y.z_win_x86.7z```
- Arm64
- ```Steam++_vx.y.z_win_arm64.msix```
- ```Steam++_vx.y.z_win_arm64.7z```
- Linux
- x64
- ```Steam++_vx.y.z_linux_x64.tar.zst```
- ```Steam++_vx.y.z_linux_x64.deb```
- ```Steam++_vx.y.z_linux_x64.rpm```
- Arm64
- ```Steam++_vx.y.z_linux_arm64.tar.zst```
- ```Steam++_vx.y.z_linux_arm64.deb```
- ```Steam++_vx.y.z_linux_arm64.rpm```
- macOS
- x64
- ```Steam++_vx.y.z_macos_x64.pkg```
- Arm64
- ```Steam++_vx.y.z_macos_arm64.pkg```
- Android
- Arm64
- ```Steam++_vx.y.z_android_arm64.apk```
### Program File Structure
- Windows
- dotnet 共享运行时,删除后将使用已安装的运行时,此目录参考 ```C:\Program Files\dotnet```,可自行升级运行库小版本号,二进制兼容
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- native
- win-x64
- 7z.dll
- av_libglesv2.dll
- e_sqlite3.dll
- libHarfBuzzSharp.dll
- libSkiaSharp.dll
- WebView2Loader.dll
- WinDivert.dll
- WinDivert64.sys
- assemblies 主模块程序集
- modules 可选模块
- ~~Update 自更新模块,删除该文件夹后禁用更新~~
- Steam++.Update.exe 更新程序,CDN 分发更新包,下载与解压在主程序中,此进程仅退出主程序执行覆盖操作
- Accelerator 网络加速
- Steam++.Accelerator.exe 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 Docker
- Steam++.Plugins.Accelerator.dll 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.exe
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
- GameTools 游戏工具
- Steam++.Plugins.GameTools.dll
- Steam++.exe (主启动程序).NET Framework 二进制主程序
- Steam++.exe.config 使用该配置文件以允许在 .NET Framework 3.5 ~ 4.8.1 中任意版本中兼容运行(从 Windows 7 ~ 11 中所有系统自带运行时)
- ~~Steam++.Uninstall.exe 卸载程序(WinForms?AOT?)~~
- Linux
- dotnet 共享运行时,删除后将使用已安装的运行时,此目录参考 [aspnetcore-runtime-7.0.7-linux-x64.tar.gz](https://download.visualstudio.microsoft.com/download/pr/c1e2729e-ab96-4929-911d-bf0f24f06f47/1b2f39cbc4eb530e39cfe6f54ce78e45/aspnetcore-runtime-7.0.7-linux-x64.tar.gz),可自行升级运行库小版本号,二进制兼容
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- native
- linux-x64
- libe_sqlite3.so
- libHarfBuzzSharp.so
- libSkiaSharp.so
- Steam++ (主启动程序) AppHost
- assemblies 主模块程序集
- modules 可选模块
- Accelerator 网络加速
- Steam++.Accelerator 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 Docker
- Steam++.Plugins.Accelerator 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.exe
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
- macOS
- Steam++.app (包含 arm64 与 x64 以及 .NET Runtime x2 与 ASP.NET Core Runtime 文件大小应该较大)
- Contents
- Info.plist
- MacOS
- Steam++ (主启动程序)
- MonoBundle
- dotnet 运行时,其中 Microsoft.NETCore.App 与 tfm macos 中将存在两份重复的,此目录参考 [aspnetcore-runtime-7.0.7-osx-arm64.tar.gz](https://ownload.visualstudio.microsoft.com/download/pr/97bb1f46-3b87-4475-bc06-e5cb7f4e6d0a/3e36e0c804c5805d2fe856505d7b1b3c/aspnetcore-runtime-7.0.7-osx-arm64.tar.gz)
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- modules 可选模块
- Accelerator 网络加速
- Steam++.Accelerator 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 ocker
- Steam++.Plugins.Accelerator.dll 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.dll
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
- PkgInfo
- Resources
<!--
对子服务进程二进制程序的 RID 使用 ```RuntimeInformation.ProcessArchitecture.ToString()```
通过 ```PublishFolderType="Assembly"``` 指定 Copy 到 MonoBundle 中,没有其他选项能够将其放在 MacOS 文件夹中
改成 Windows 的目录结构,但在 AOT 的 AppHost 中无法加载已使用框架依赖发布的程序集,错误 Initialization for self-contained components is not supported
参考
https://github.com/dotnet/runtime/issues/35329
https://github.com/dotnet/runtime/search?l=C%2B%2B&q=get_is_framework_dependent
https://github.com/dotnet/runtime/blob/6702dc5c7814e624a42ab4615224920a5635beeb/src/native/corehost/runtime_config.cpp
https://github.com/dotnet/runtime/blob/main/docs/design/features/host-error-codes.md
https://github.com/dotnet/samples/blob/91355ef22a10ec614a2e8daefd68785066860d57/core/hosting/src/NativeHost/nativehost.cpp
-->
### 安装 ASP.NET Core 运行时 & .NET 运行时
- Windows
- [使用 Windows 包管理器 (winget) 进行安装](https://learn.microsoft.com/zh-cn/dotnet/core/install/windows?tabs=net70#install-with-windows-installer)
```winget install Microsoft.DotNet.AspNetCore.7```
- Linux
- [使用安装脚本或通过提取二进制文件在 Linux 上安装 .NET](https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-scripted-manual)
```wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh```
```sudo chmod +x ./dotnet-install.sh```
```./dotnet-install.sh --version latest --runtime aspnetcore```
- [排查与 Linux 上缺少文件相关的 .NET 错误](https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-package-mixup?pivots=os-linux-redhat)
- macOS
- [使用 Bash 自动化安装](https://learn.microsoft.com/zh-cn/dotnet/core/install/macos#install-with-bash-automation)
```./dotnet-install.sh --channel 7.0 --runtime aspnetcore```
### 自定义 .NET Host 文档
- [编写自定义 .NET 主机以从本机代码控制 .NET 运行时](https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/netcore-hosting)
- [.NET 分发打包](https://learn.microsoft.com/zh-cn/dotnet/core/distribution-packaging)
- [环境变量 - 指定 .NET 运行时的位置](https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-environment-variables#dotnet_root-dotnet_rootx86)
+1 -1
View File
@@ -13,7 +13,7 @@ static unsafe partial class Program
{
public const string dotnet_version_major = "7";
public const string dotnet_version_minor = "0";
public const string dotnet_version_build = "5";
public const string dotnet_version_build = "8";
public const string dotnet_version = $"{dotnet_version_major}.{dotnet_version_minor}.{dotnet_version_build}";
const string dotnet_runtime = "Microsoft.NETCore.App";
+1 -180
View File
@@ -107,183 +107,4 @@ TODO
// ReSharper disable once CheckNamespace
namespace Microsoft.Extensions.DependencyInjection
</pre>
-->
### 自定义 .NET Host 文档
- [编写自定义 .NET 主机以从本机代码控制 .NET 运行时](https://learn.microsoft.com/zh-cn/dotnet/core/tutorials/netcore-hosting)
- [.NET 分发打包](https://learn.microsoft.com/zh-cn/dotnet/core/distribution-packaging)
- [环境变量 - 指定 .NET 运行时的位置](https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-environment-variables#dotnet_root-dotnet_rootx86)
### 程序目录结构(Windows)
- dotnet 共享运行时,删除后将使用已安装的运行时,此目录参考 ```C:\Program Files\dotnet```,可自行升级运行库小版本号,二进制兼容
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- native
- win-x64
- 7z.dll
- av_libglesv2.dll
- e_sqlite3.dll
- libHarfBuzzSharp.dll
- libSkiaSharp.dll
- WebView2Loader.dll
- WinDivert.dll
- WinDivert64.sys
- assemblies 主模块程序集
- modules 可选模块
- ~~Update 自更新模块,删除该文件夹后禁用更新~~
- Steam++.Update.exe 更新程序,CDN 分发更新包,下载与解压在主程序中,此进程仅退出主程序执行覆盖操作
- Accelerator 网络加速
- Steam++.Accelerator.exe 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 Docker
- Steam++.Plugins.Accelerator.dll 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.exe
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
- GameTools 游戏工具
- Steam++.Plugins.GameTools.dll
- Steam++.exe (主启动程序).NET Framework 二进制主程序
- Steam++.exe.config 使用该配置文件以允许在 .NET Framework 3.5 ~ 4.8.1 中任意版本中兼容运行(从 Windows 7 ~ 11 中所有系统自带运行时)
- ~~Steam++.Uninstall.exe 卸载程序(WinForms?AOT?)~~
### 程序目录结构(Linux)
- dotnet 共享运行时,删除后将使用已安装的运行时,此目录参考 [aspnetcore-runtime-7.0.7-linux-x64.tar.gz](https://download.visualstudio.microsoft.com/download/pr/c1e2729e-ab96-4929-911d-bf0f24f06f47/1b2f39cbc4eb530e39cfe6f54ce78e45/aspnetcore-runtime-7.0.7-linux-x64.tar.gz),可自行升级运行库小版本号,二进制兼容
- dotnet
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- native
- linux-x64
- libe_sqlite3.so
- libHarfBuzzSharp.so
- libSkiaSharp.so
- Steam++.sh (主启动程序)
- assemblies 主模块程序集
- modules 可选模块
- Accelerator 网络加速
- Steam++.Accelerator.dll 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 Docker
- Steam++.Plugins.Accelerator.dll 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.exe
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
<!--
改成 Windows 的目录结构,但在 AOT 的 AppHost 中无法加载已使用框架依赖发布的程序集,错误 Initialization for self-contained components is not supported
参考
https://github.com/dotnet/runtime/issues/35329
https://github.com/dotnet/runtime/search?l=C%2B%2B&q=get_is_framework_dependent
https://github.com/dotnet/runtime/blob/6702dc5c7814e624a42ab4615224920a5635beeb/src/native/corehost/runtime_config.cpp
https://github.com/dotnet/runtime/blob/main/docs/design/features/host-error-codes.md
https://github.com/dotnet/samples/blob/91355ef22a10ec614a2e8daefd68785066860d57/core/hosting/src/NativeHost/nativehost.cpp
-->
### 程序目录结构(macOS)
- Steam++.app (包含 arm64 与 x64 以及 .NET Runtime x2 与 ASP.NET Core Runtime 文件大小应该较大)
- Contents
- Info.plist
- MacOS
- Steam++ (主启动程序)
- MonoBundle
- dotnet 运行时,其中 Microsoft.NETCore.App 与 tfm macos 中将存在两份重复的,此目录参考 [aspnetcore-runtime-7.0.7-osx-arm64.tar.gz](https://download.visualstudio.microsoft.com/download/pr/97bb1f46-3b87-4475-bc06-e5cb7f4e6d0a/3e36e0c804c5805d2fe856505d7b1b3c/aspnetcore-runtime-7.0.7-osx-arm64.tar.gz)
- dotnet
- host
- fxr
- x.y.z
- hostfxr.dll
- shared
- Microsoft.AspNetCore.App
- x.y.z
- Microsoft.NETCore.App
- x.y.z
- modules 可选模块
- Accelerator 网络加速
- Steam++.Accelerator.dll 控制台子服务进程,使用匿名管道与主进程通信,无参数或指定某个参数(待定)启动时可读取配置文件启动加速,可完全独立运行,ASP.NET Core Web API 项目,可支持 Docker
- Steam++.Plugins.Accelerator.dll 插件程序集
- AccountSwitch 账号切换
- Steam++.Plugins.AccountSwitch.dll
- ~~ArchiSteamFarm~~
- Steam++.ArchiSteamFarm.dll
- Steam++.Plugins.ArchiSteamFarm.dll
- GameList 库存游戏
- Steam++.Plugins.GameList.dll
- LocalAuth 本地令牌
- Steam++.Plugins.LocalAuth.dll
- PkgInfo
- Resources
对子服务进程二进制程序的 RID 使用 ```RuntimeInformation.ProcessArchitecture.ToString()```
通过 ```PublishFolderType="Assembly"``` 指定 Copy 到 MonoBundle 中,没有其他选项能够将其放在 MacOS 文件夹中
### 应用分发(安装包程序方案)
- Steam 软件商店
- 待上架
- 对接 API 加入 CI/CD 自动化
- Windows
- 应用商店分发受限于网络情况,一些用户连不上 Microsoft Store,比如应用商店显示错误 ```我们这边出了错 0x80240438```😅
- msix 格式不够简单方便
- msi 格式在小部分用户设备上会因权限问题导致 2502/2503 错误
- NSIS 现使用的自定义方面不够好
- exe 单文件 Setup.exe 最合适,使用 net4.0 WinForms Or net8 WinForms AOT? UI 可参考 .NET Runtime 安装界面
- UI 多语言支持
- 注册表写入软件信息
- 7z 解压程序文件(进度条)
- Linux
- tar.zst 压缩包
- deb Debian 软件包
- rpm RPM 包
- macOS
- dmg 磁盘镜像安装包
- iOS
- AppStore
- 待上架
- 对接 API 加入 CI/CD 自动化
- Android
- Google Play
- 待上架
- 酷安
- 待上架
- 手机厂商应用商店
- TODO
### 📁 存储空间
- AppData
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalState```
- Windows ```\AppData``` or ```%LocalAppData%\Steam++```
- macOS ```~/Library/Steam++```
- Linux ```$XDG_DATA_HOME/Steam++``` or ```$HOME/.local/share/Steam++```
- Android ```/data/data/net.steampp.app/files```
- Cache
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache```
- Windows ```\Cache``` or ```%Tmp%\Steam++```
- macOS ```~/Library/Caches/Steam++```
- Linux ```$XDG_CACHE_HOME/Steam++``` or ```$HOME/.cache/Steam++```
- Android ```/data/data/net.steampp.app/cache```
- Logs
- Microsoft Store ```%USERPROFILE%\AppData\Local\Packages\4651ED44255E.47979655102CE_k6txddmbb6c52\LocalCache\Logs```
- Windows ```\Logs``` or ```%Tmp%\Steam++\Logs```
- macOS ```~/Library/Caches/Steam++/Logs```
- Linux ```$XDG_CACHE_HOME/Steam++/Logs``` or ```$HOME/.cache/Steam++/Logs```
- Android ```/data/data/net.steampp.app/cache/Logs```
-->