Compare commits

..
2 Commits
Author SHA1 Message Date
Aigio L 0286ed1e61 Merge pull request #986 from BeyondDimension/develop
v2.6.7
2022-02-08 03:18:29 +08:00
Aigio L 2921988a40 Merge pull request #985 from BeyondDimension/develop
v2.6.6
2022-02-08 01:13:02 +08:00
1721 changed files with 35935 additions and 103350 deletions
+9 -225
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
@@ -204,26 +204,26 @@ dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.style = 帕斯
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.类型.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.类型.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.类型.required_modifiers =
dotnet_naming_symbols.类型.required_modifiers =
dotnet_naming_symbols.非字段成员.applicable_kinds = property, event, method
dotnet_naming_symbols.非字段成员.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.非字段成员.required_modifiers =
dotnet_naming_symbols.非字段成员.required_modifiers =
# 命名样式
dotnet_naming_style.帕斯卡拼写法.required_prefix =
dotnet_naming_style.帕斯卡拼写法.required_suffix =
dotnet_naming_style.帕斯卡拼写法.word_separator =
dotnet_naming_style.帕斯卡拼写法.required_prefix =
dotnet_naming_style.帕斯卡拼写法.required_suffix =
dotnet_naming_style.帕斯卡拼写法.word_separator =
dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case
dotnet_naming_style.以_i_开始.required_prefix = I
dotnet_naming_style.以_i_开始.required_suffix =
dotnet_naming_style.以_i_开始.word_separator =
dotnet_naming_style.以_i_开始.required_suffix =
dotnet_naming_style.以_i_开始.word_separator =
dotnet_naming_style.以_i_开始.capitalization = pascal_case
# IDE0010: 添加缺失的事例
@@ -240,219 +240,3 @@ 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
# SA1118: Parameter should not span multiple lines
dotnet_diagnostic.SA1118.severity = silent
# SA1214: Readonly fields should appear before non-readonly fields
dotnet_diagnostic.SA1214.severity = silent
# SA1309: Field names should not begin with underscore
dotnet_diagnostic.SA1309.severity = silent
# SA1027: Use tabs correctly
dotnet_diagnostic.SA1027.severity = silent
# SA1306: Field names should begin with lower-case letter
dotnet_diagnostic.SA1306.severity = silent
# SA1643: Destructor summary documentation should begin with standard text
dotnet_diagnostic.SA1643.severity = silent
# SA1303: Const field names should begin with upper-case letter
dotnet_diagnostic.SA1303.severity = silent
# SA1300: Element should begin with upper-case letter
dotnet_diagnostic.SA1300.severity = silent
# SA1316: Tuple element names should use correct casing
dotnet_diagnostic.SA1316.severity = silent
+5 -26
View File
@@ -7,45 +7,24 @@ assignees: ''
---
<!--
发布前请先尝试在 Issuse 内搜索一下你的问题是否已经被提出过,
详细地描述 bug,让大家都能理解,请一定确定你所要发布的内容是一个 Bug,如果不确定请发 Question
别忘了填写标题,标题要简短的描述问题
Before posting, please try searching in Issuse to see if your question has already been asked,
Describe the bug in detail so that everyone can understand it
Don't forget to fill in the title, which should briefly describe the problem
-->
### 🐛 描述(Description)
<!--
详细的描述该问题
Describe the problem in detail
-->
<!--
详细地描述 bug,让大家都能理解
Describe the bug in detail so that everyone can understand it
-->
### 📷 复现步骤(Steps to Reproduce)
<!--
清晰描述复现步骤,让别人也能看到问题
确保上述步骤尽可能能够在大多数设备上 100% 复现,以便定位问题原因
Clearly describe the reproduction steps so that others can see the problem
Ensure that the above steps can be reproduced 100% on most devices as far as possible in order to locate the cause of the problem
-->
1.
2.
3.
### 📄 日志信息(Log Information)
<!--
在程序内 设置 - 通用设置 - 存储空间 - 打开Logs文件夹 找到当天的日志,将文件上传或将关键部分写在此处,在内容的开始与结束上加上 ``` 单独作为一行,如下所示
Set in the program - General Settings - storage space - open the logs folder to find the log of the day, upload the file or write the key part here, and add ``` to the beginning and end of the content as a separate line, as shown below
```
你的日志内容
Your log content
```
-->
### 📄 [异常/日志]信息([Exception/Log] Information)
### 🚑 基本信息(Basic Information)
@@ -7,13 +7,6 @@ assignees: ''
---
<!--
发布前请先尝试在 Issuse 内搜索一下你的 Feature 是否已经被提出过,
别忘了填写标题,标题要简短的描述 Feature
Before publishing, please try to search in issue to see if your feature has been proposed,
Don't forget to fill in the title, which should briefly describe the feature
-->
### 🥰 需求描述(Description)
<!--
+2 -9
View File
@@ -7,18 +7,11 @@ assignees: ''
---
<!--
发布前请先尝试在 Issuse 内搜索一下你的 Question 是否已经被提出过,
别忘了填写标题,标题要简短的描述 Question
Before publishing, please try to search in issue to see if your question has been proposed,
Don't forget to fill in the title, which should briefly describe the question
-->
### 🧐 问题描述(Description)
<!--
详细地描述 Question,让大家都能理解
Describe the question in detail so that everyone can understand it
详细地描述需求,让大家都能理解
Describe the requirements in detail so that everyone can understand them
-->
### 🚑 其他信息(Other Information)
+15 -45
View File
@@ -17,19 +17,18 @@ jobs:
fail-fast: false
matrix:
configuration: [ Debug, Release ]
# os: [ windows-latest, macOS-latest, ubuntu-latest ]
os: [ windows-latest, macOS-latest ]
os: [ windows-latest, macOS-latest, ubuntu-latest ]
# rid: [ fd-win-x64, win-x64, osx-x64, linux-x64,linux-arm64 ]
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v2
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
@@ -41,29 +40,16 @@ jobs:
if: matrix.os == 'windows-latest'
run: dotnet workload install macos
- 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 android
- name: Install Maui(Windows)
if: matrix.os == 'windows-latest'
run: dotnet workload install maui
- name: Install Maui(Unix)
# if: ${{ matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest' }}
if: matrix.os == 'macOS-latest'
run: sudo 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@v3
uses: actions/checkout@v2
with:
repository: SteamTools-Team/Credentials
token: ${{ secrets.REPO_TOKEN }}
@@ -100,9 +86,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' }}
@@ -131,7 +117,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@v3
uses: actions/upload-artifact@v2
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
@@ -139,31 +125,15 @@ 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@v3
uses: actions/upload-artifact@v2
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
- name: Upload fd-win-x86 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@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_win_x86_fde_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_win_x86_fde_${{ env.GITHUB_SHA_SHORT }}.7z
- name: Upload win-x86 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@v3
with:
name: '[${{ matrix.configuration }}]${{ env.ProjectName }}_win_x86_${{ env.GITHUB_SHA_SHORT }}'
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_win_x86_${{ env.GITHUB_SHA_SHORT }}.7z
- 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@v3
uses: actions/upload-artifact@v2
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
@@ -171,7 +141,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@v3
uses: actions/upload-artifact@v2
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
@@ -179,15 +149,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@v3
uses: actions/upload-artifact@v2
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 }}.tar.zst
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_x64_${{ env.GITHUB_SHA_SHORT }}.7z
- 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@v3
uses: actions/upload-artifact@v2
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 }}.tar.zst
path: src\ST.Client.Desktop.Avalonia.App\bin\${{ matrix.configuration }}\Publish\${{ env.ProjectName }}_linux_arm64_${{ env.GITHUB_SHA_SHORT }}.7z
+15 -66
View File
@@ -22,13 +22,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v2
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
@@ -40,23 +40,10 @@ jobs:
if: matrix.os == 'windows-latest'
run: dotnet workload install macos
- 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 android
- name: Install Maui(Windows)
if: matrix.os == 'windows-latest'
run: dotnet workload install maui
- name: Install Maui(Unix)
# if: ${{ matrix.os == 'macOS-latest' || matrix.os == 'ubuntu-latest' }}
if: matrix.os == 'macOS-latest'
run: sudo dotnet workload install maui
- name: Verify dotnet info
run: dotnet --info
@@ -65,7 +52,7 @@ jobs:
- name: Checkout NSIS-Build repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
repository: SteamTools-Team/NSIS-Build
token: ${{ secrets.REPO_TOKEN }}
@@ -73,7 +60,7 @@ jobs:
- name: Checkout Credentials repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
repository: SteamTools-Team/Credentials
token: ${{ secrets.REPO_TOKEN }}
@@ -124,7 +111,6 @@ jobs:
run: .\packaging\build.ps1 -version ${{ steps.tag.outputs.tag }} -configuration ${{ env.Configuration }} -isPublish $true
env:
Token: ${{ secrets.PUBLISH_TOKEN }}
WIN_SIGN_PFX_PWD: ${{ secrets.WIN_SIGN_PFX_PWD }}
- name: Package fd-win-x64 7z
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
@@ -158,38 +144,6 @@ jobs:
Copy-Item ".\src\ST.Client.Desktop.Avalonia.App\bin\${env:Configuration}\Publish\${env:ProjectName}_win_x64_v${{ steps.tag.outputs.tag }}.exe" "${env:PublishFilePath}"
Write-Output "exe_win_x64_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_win_x64_v${{ steps.tag.outputs.tag }}.exe)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package fd-win-x86 7z
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}_win_x86_fde_v${{ steps.tag.outputs.tag }}.7z" "${env:PublishFilePath}"
Write-Output "fd_win_x86_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_win_x86_fde_v${{ steps.tag.outputs.tag }}.7z)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package fd-win-x86 exe
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}_win_x86_fde_v${{ steps.tag.outputs.tag }}.exe" "${env:PublishFilePath}"
Write-Output "exe_fd_win_x86_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_win_x86_fde_v${{ steps.tag.outputs.tag }}.exe)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package win-x86 7z
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}_win_x86_v${{ steps.tag.outputs.tag }}.7z" "${env:PublishFilePath}"
Write-Output "win_x86_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_win_x86_v${{ steps.tag.outputs.tag }}.7z)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package win-x86 exe
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}_win_x86_v${{ steps.tag.outputs.tag }}.exe" "${env:PublishFilePath}"
Write-Output "exe_win_x86_SHA256=$(.\packaging\SHA256.ps1 ${env:PublishFilePath}\${env:ProjectName}_win_x86_v${{ steps.tag.outputs.tag }}.exe)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Package osx-x64 7z
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
shell: pwsh
@@ -206,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 tar.zst
- name: Package linux-x64 7z
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 }}.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
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
- name: Package linux-arm64 tar.zst
- name: Package linux-arm64 7z
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 }}.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
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
- name: Package linux-x64 deb
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
@@ -283,13 +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 }}_win_x86_v${{ steps.tag.outputs.tag }}.7z</sub> | <sub>${{ env.win_x86_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_win_x86_fde_v${{ steps.tag.outputs.tag }}.7z</sub> | <sub>${{ env.fd_win_x86_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_win_x86_v${{ steps.tag.outputs.tag }}.exe</sub> | <sub>${{ env.exe_win_x86_SHA256 }}</sub> |
| <sub>${{ env.ProjectName }}_win_x86_fde_v${{ steps.tag.outputs.tag }}.exe</sub> | <sub>${{ env.exe_fd_win_x86_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 }}.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 }}.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> |
@@ -315,13 +264,13 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v2
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
@@ -365,7 +314,7 @@ jobs:
- name: Checkout Credentials repository
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
uses: actions/checkout@v3
uses: actions/checkout@v2
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@v3
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
- name: Setup .NET 6
uses: actions/setup-dotnet@v2
uses: actions/setup-dotnet@v1
with:
dotnet-version: 6.0.x
-3
View File
@@ -37,6 +37,3 @@
[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
+49
View File
@@ -0,0 +1,49 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31729.503
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Native", "src\Avalonia.Native\Avalonia.Native.csproj", "{6D1B84EF-D58A-41B1-A442-249FBA9720CD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Themes.Default", "src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj", "{61A4D91B-1C05-444C-B587-353BAA582DF3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Themes.Fluent", "src\Avalonia.Themes.Fluent\Avalonia.Themes.Fluent.csproj", "{690B15C0-F622-443E-B793-BDD6AF2DCDB2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Win32", "src\Avalonia.Win32\Avalonia.Win32.csproj", "{4A6AD260-611E-4106-8E91-16750DA76A75}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.X11", "src\Avalonia.X11\Avalonia.X11.csproj", "{7B75CDE0-3A5C-4433-A8AF-78431ED8B397}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6D1B84EF-D58A-41B1-A442-249FBA9720CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D1B84EF-D58A-41B1-A442-249FBA9720CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D1B84EF-D58A-41B1-A442-249FBA9720CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6D1B84EF-D58A-41B1-A442-249FBA9720CD}.Release|Any CPU.Build.0 = Release|Any CPU
{61A4D91B-1C05-444C-B587-353BAA582DF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{61A4D91B-1C05-444C-B587-353BAA582DF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{61A4D91B-1C05-444C-B587-353BAA582DF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{61A4D91B-1C05-444C-B587-353BAA582DF3}.Release|Any CPU.Build.0 = Release|Any CPU
{690B15C0-F622-443E-B793-BDD6AF2DCDB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{690B15C0-F622-443E-B793-BDD6AF2DCDB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{690B15C0-F622-443E-B793-BDD6AF2DCDB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{690B15C0-F622-443E-B793-BDD6AF2DCDB2}.Release|Any CPU.Build.0 = Release|Any CPU
{4A6AD260-611E-4106-8E91-16750DA76A75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A6AD260-611E-4106-8E91-16750DA76A75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A6AD260-611E-4106-8E91-16750DA76A75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A6AD260-611E-4106-8E91-16750DA76A75}.Release|Any CPU.Build.0 = Release|Any CPU
{7B75CDE0-3A5C-4433-A8AF-78431ED8B397}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B75CDE0-3A5C-4433-A8AF-78431ED8B397}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B75CDE0-3A5C-4433-A8AF-78431ED8B397}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B75CDE0-3A5C-4433-A8AF-78431ED8B397}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E3C313BF-6EBC-4070-99BC-C86656B6C8CE}
EndGlobalSection
EndGlobal
-2
View File
@@ -1,13 +1,11 @@
<Project>
<PropertyGroup>
<NoWarn>NU1507;NU1605</NoWarn>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<TrimMode>link</TrimMode>
<DisableImplicitNamespaceImports>true</DisableImplicitNamespaceImports>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" Exists('$(MSBuildProjectDirectory)\..\..\Unicorn.snk') ">
+247 -290
View File
@@ -1,330 +1,287 @@
<Project>
<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.8" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="6.0.1" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.8" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.8" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.8" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="6.0.8" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.8" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('netstandard')) Or $(TargetFramework.StartsWith('netcoreapp3.1'))">
<!-- Microsoft.Extensions.* & AspNetCore & EntityFrameworkCore(NETCOREAPP31) -->
<!--<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="3.1.27" />-->
<PackageVersion Include="Microsoft.Extensions.Http" Version="3.1.27" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="3.1.27" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.27" />
<PackageVersion Include="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.27" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="3.1.27" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.27" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="3.1.27" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.27" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="3.1.27" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.27" />
</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.14.3" />
<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" />
<!-- AspNetCore 6 OpenId/OAuth -->
<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.5" />
<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.2.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.22621.1" />
<PackageVersion Include="Microsoft.Extensions.Primitives" Version="6.0.0" />
<PackageVersion Include="Microsoft.Net.Http.Headers" Version="2.2.255.255" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.0" />
<!--<PackageVersion Include="CommunityToolkit.Mvvm" Version="7.1.2" />-->
<PackageVersion Include="System.Text.Encoding.CodePages" Version="6.0.0" />
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="6.0.1" />
<PackageVersion Include="System.Net.Http.WinHttpHandler" Version="6.0.1" />
<!-- AppCenter.* -->
<PackageVersion Include="Microsoft.AppCenter" Version="4.5.3" />
<PackageVersion Include="Microsoft.AppCenter.Analytics" Version="4.5.3" />
<PackageVersion Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
<PackageVersion Include="Aigio.Avalonia.AppCenter" Version="4.5.3" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Analytics" Version="4.5.3" />
<PackageVersion Include="Aigio.Avalonia.AppCenter.Crashes" Version="4.5.3" />
<!--<PackageVersion Include="nor0x.AppCenter" Version="4.4.0-XMAC" />
<!-- 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" />
<!-- 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" />
<PackageVersion Include="System.Management" 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.3" />
<!-- Xamarin.Forms -->
<PackageVersion Include="Xamarin.Forms" Version="5.0.0.2478" />
<PackageVersion Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2478" />
<PackageVersion Include="Xam.Plugins.Forms.ImageCircle" Version="3.1.1.1-beta" />
<!-- 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.18.2" />
<!-- 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" />
<!-- NLog -->
<PackageVersion Include="NLog" Version="5.0.1" />
<PackageVersion Include="NLog.Extensions.Logging" Version="5.0.1" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="5.1.0" />
<PackageVersion Include="AspNetCore2.NETStandard.NLog.Web.AspNetCore" Version="5.0.0" />
<!-- 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" />
<!-- ReactiveUI -->
<PackageVersion Include="System.Reactive" Version="5.0.0" />
<PackageVersion Include="Splat" Version="14.4.1" />
<PackageVersion Include="DynamicData" Version="7.9.7" />
<PackageVersion Include="ReactiveUI" Version="18.3.1" />
<PackageVersion Include="ReactiveUI.Fody" Version="18.3.1" />
<PackageVersion Include="ReactiveUI.XamForms" Version="18.3.1" />
<PackageVersion Include="ReactiveUI.AndroidX" Version="18.3.1" />
<PackageVersion Include="ReactiveUI.Maui" Version="18.3.1" />
<!-- SkiaSharp & HarfBuzzSharp -->
<!-- https://github.com/AvaloniaUI/Avalonia/blob/master/build/HarfBuzzSharp.props -->
<PackageVersion Include="HarfBuzzSharp" Version="2.8.2.1-preview.104" />
<PackageVersion Include="HarfBuzzSharp.NativeAssets.Linux" Version="2.8.2.1-preview.104" />
<!-- https://github.com/AvaloniaUI/Avalonia/blob/master/build/SkiaSharp.props -->
<PackageVersion Include="SkiaSharp" Version="2.88.1-preview.104" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.1-preview.104" />
<!-- 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" />
<!-- AutoMapper -->
<PackageVersion Include="AutoMapper" Version="11.0.1" />
<PackageVersion Include="AutoMapper.Collection" Version="8.0.0" />
<PackageVersion Include="AutoMapper.Collection.EntityFrameworkCore" Version="8.0.0" />
<PackageVersion Include="AutoMapper.Extensions.ExpressionMapping" Version="5.1.0" />
<PackageVersion Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="11.0.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" />
<!-- QRCode -->
<!--<PackageVersion Include="QRCoder" Version="1.4.2" />-->
<PackageVersion Include="Net.Codecrete.QrCodeGenerator" Version="2.0.3" />
<!-- 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" />
<!-- NotifyIcon -->
<PackageVersion Include="NotifyIcon.Base" Version="1.1.0" />
<!--<PackageVersion Include="NotifyIcon.Linux" Version="1.1.0" />-->
<!--<PackageVersion Include="NotifyIcon.Mac" Version="1.1.0" />-->
<PackageVersion Include="NotifyIcon.Windows" Version="1.1.0" />
<!--<PackageVersion Include="GtkSharp" Version="3.24.24.38" />-->
<!-- 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" />
<!-- Compression -->
<PackageVersion Include="SharpZipLib" Version="1.3.3" />
<PackageVersion Include="Squid-Box.SevenZipSharp.Lite" Version="1.5.0.366" />
<PackageVersion Include="7-Zip.NativeAssets.Win32" Version="21.7.0-preview.1" />
<PackageVersion Include="ZstdNet" Version="1.4.5" />
<!-- QRCode -->
<!--<PackageVersion Include="QRCoder" Version="1.4.2" />-->
<PackageVersion Include="Net.Codecrete.QrCodeGenerator" Version="2.0.1" />
<!-- Algorithm -->
<PackageVersion Include="Crc32.NET" Version="1.2.0" />
<PackageVersion Include="gfoidl.Base64" Version="1.1.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" />-->
<!--Command Line Tools-->
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageVersion Include="System.CommandLine.NamingConventionBinder" Version="2.0.0-beta4.22272.1" />
<!-- 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" />
<!-- Pinyin -->
<PackageVersion Include="TinyPinyin.Net" Version="1.0.2" />
<PackageVersion Include="XAB.TinyPinyin" Version="2.0.4.4" />
<!-- Algorithm -->
<PackageVersion Include="Crc32.NET" Version="1.2.0" />
<PackageVersion Include="gfoidl.Base64" Version="1.1.1" />
<!-- Win32/Windows -->
<PackageVersion Include="TaskScheduler" Version="2.10.1" />
<!--Command Line Tools-->
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta1.21308.1" />
<!-- Swagger -->
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.4.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore" Version="6.3.1" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore.Annotations" Version="6.3.1" />
<PackageVersion Include="AspNetCore2.NETStandard.Swashbuckle.AspNetCore.Newtonsoft" Version="6.3.1" />
<!-- Pinyin -->
<PackageVersion Include="TinyPinyin.Net" Version="1.0.2" />
<!-- Pay -->
<!--<PackageVersion Include="AlipaySDKNet.Standard" Version="4.6.109" />-->
<!-- Win32/Windows -->
<PackageVersion Include="TaskScheduler" Version="2.10.0" />
<!-- Excel -->
<PackageVersion Include="NPOI" Version="2.5.6" />
<!-- Swagger -->
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<!-- Github API -->
<PackageVersion Include="Octokit" Version="2.0.0" />
<!-- Pay -->
<!--<PackageVersion Include="AlipaySDKNet.Standard" Version="4.6.109" />-->
<!-- ORM -->
<PackageVersion Include="sqlite-net-pcl" Version="1.8.116" />
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.1.0" />
<!-- Excel -->
<PackageVersion Include="NPOI" Version="2.5.5" />
<!-- MonoMac(NETSTANDARD) -->
<PackageVersion Include="MonoMac.NetStandard" Version="0.0.4" />
<!-- Github API -->
<PackageVersion Include="Octokit" Version="0.50.0" />
<!-- .NET Compat -->
<PackageVersion Include="OperatingSystem2" Version="2.0.0" />
<PackageVersion Include="JustArchiNET.Madness" Version="3.7.0" />
<!-- ORM -->
<PackageVersion Include="sqlite-net-pcl" Version="1.8.116" />
<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.0.7" />
<!-- Serialize -->
<PackageVersion Include="MessagePack" Version="2.4.35" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
<!-- MonoMac(NETSTANDARD) -->
<PackageVersion Include="MonoMac.NetStandard" Version="0.0.4" />
<!-- Html Parser -->
<PackageVersion Include="HtmlAgilityPack" Version="1.11.43" />
<!-- .NET Compat -->
<PackageVersion Include="OperatingSystem2" Version="1.4.3" />
<PackageVersion Include="JustArchiNET.Madness" Version="3.2.1" />
<!-- Clipboard -->
<PackageVersion Include="TextCopy" Version="6.1.0" />
<!-- Serialize -->
<PackageVersion Include="MessagePack" Version="2.3.85" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
<!-- Nito.* -->
<PackageVersion Include="Nito.Comparers" Version="6.2.2" />
<!--<PackageVersion Include="Nito.Disposables" Version="2.2.1" />-->
<!-- Html Parser -->
<PackageVersion Include="HtmlAgilityPack" Version="1.11.42" />
<!-- 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" />
<!-- Clipboard -->
<PackageVersion Include="TextCopy" Version="6.1.0" />
<!-- WebSocket -->
<PackageVersion Include="Fleck" Version="1.2.0" />
<!-- Nito.* -->
<PackageVersion Include="Nito.Comparers" Version="6.2.2" />
<!--<PackageVersion Include="Nito.Disposables" Version="2.2.1" />-->
<!-- DNS -->
<PackageVersion Include="DnsClient" Version="1.6.1" />
<PackageVersion Include="DNS" Version="7.0.0" />
<!-- Valve Data File -->
<PackageVersion Include="Gameloop.Vdf" Version="0.6.1" />
<!-- Cryptographic Algorithms & Protocols -->
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
<!-- WebSocket -->
<PackageVersion Include="Fleck" Version="1.2.0" />
<!-- Resilience & Transient Fault Handling -->
<PackageVersion Include="Polly" Version="7.2.3" />
<!-- DNS -->
<PackageVersion Include="DnsClient" Version="1.6.0" />
<!--Avalonia Start-->
<PackageVersion Include="Avalonia" Version="0.10.17" />
<PackageVersion Include="Avalonia.Desktop" Version="0.10.17" />
<PackageVersion Include="Avalonia.Skia" Version="0.10.17" />
<PackageVersion Include="Avalonia.Diagnostics" Version="0.10.17" />
<PackageVersion Include="Avalonia.ReactiveUI" Version="0.10.17" />
<!--<PackageVersion Include="Avalonia.Direct2D1" Version="0.10.16" />-->
<PackageVersion Include="Avalonia.Controls.DataGrid" Version="0.10.17" />
<PackageVersion Include="Avalonia.Xaml.Behaviors" Version="0.10.17" />
<!--<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.4.1" />-->
<PackageVersion Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-beta.350" />
<PackageVersion Include="JumpLists.Win32.Avalonia" Version="1.0.0" />
<PackageVersion Include="Avalonia.Native" Version="0.10.17" />
<PackageVersion Include="Avalonia.Win32" Version="0.10.17" />
<PackageVersion Include="Avalonia.X11" Version="0.10.17" />
<!--<PackageVersion Include="Avalonia.HtmlRenderer" Version="0.10.0" />-->
<PackageVersion Include="WebView2.Avalonia" Version="1.0.1264.42-preview.220713.10" />
<!--Avalonia End-->
<!-- Cryptographic Algorithms & Protocols -->
<PackageVersion Include="Portable.BouncyCastle" Version="1.9.0" />
<!-- Xamarin.Android -->
<PackageVersion Include="Xamarin.Build.Download" Version="0.11.3" />
<PackageVersion Include="Xamarin.Google.Dagger" Version="2.40.5" />
<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" />
<!-- Resilience & Transient Fault Handling -->
<PackageVersion Include="Polly" Version="7.2.3" />
<!-- 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.4" />
<PackageVersion Include="Xamarin.KotlinX.Coroutines.Android" Version="1.6.4" />
<PackageVersion Include="Xamarin.Android.ReactiveX.RxJava3.RxJava" Version="3.1.5.1" />
<!--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-->
<!-- Xamarin.AndroidX -->
<PackageVersion Include="Xamarin.AndroidX.Migration" Version="1.0.10" />
<PackageVersion Include="Xamarin.AndroidX.AppCompat" Version="1.4.2.1" />
<PackageVersion Include="Xamarin.AndroidX.Emoji.AppCompat" Version="1.1.0.9" />
<PackageVersion Include="Xamarin.AndroidX.Fragment" Version="1.5.1" />
<PackageVersion Include="Xamarin.AndroidX.RecyclerView" Version="1.2.1.7" />
<PackageVersion Include="Xamarin.Google.Android.Material" Version="1.6.1.1" />
<PackageVersion Include="Xamarin.AndroidX.SwipeRefreshLayout" Version="1.1.0.9" />
<PackageVersion Include="Xamarin.AndroidX.ConstraintLayout" Version="2.1.4.1" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.UI" Version="2.5.1" />
<PackageVersion Include="Xamarin.AndroidX.Navigation.Fragment" Version="2.5.1" />
<PackageVersion Include="Xamarin.AndroidX.ViewPager2" Version="1.0.0.16" />
<PackageVersion Include="Xamarin.AndroidX.Activity" Version="1.5.1" />
<PackageVersion Include="Xamarin.AndroidX.Biometric" Version="1.1.0.10" />
<PackageVersion Include="Xamarin.AndroidX.ExifInterface" Version="1.3.3.6" />
<PackageVersion Include="Xamarin.AndroidX.Legacy.Support.Core.UI" Version="1.0.0.15" />
<PackageVersion Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.5.1" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Camera2" Version="1.1.0" />
<PackageVersion Include="Xamarin.AndroidX.Camera.Lifecycle" Version="1.1.0" />
<PackageVersion Include="Xamarin.AndroidX.Camera.View" Version="1.1.0-beta02" />
<!--<PackageVersion Include="Xamarin.AndroidX.Window" Version="1.0.0.9" />-->
<PackageVersion Include="Xamarin.AndroidX.WebKit" Version="1.4.0.8" />
<!-- 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.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.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" />-->
<!-- UWP -->
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.1.3" />
<!-- Xamarin.iOS -->
<PackageVersion Include="Toast.iOS" Version="1.2.0" />
<!-- Code Style -->
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.435" />
<!-- Quartz -->
<PackageVersion Include="Quartz.AspNetCore" Version="3.4.0" />
<!-- Yet Another Reverse Proxy -->
<PackageVersion Include="Yarp.ReverseProxy" Version="1.1.1" />
<!-- WinDivert -->
<PackageVersion Include="Aigio.WinDivertSharp" Version="1.4.4.3" />
<!-- ArchiSteamFarm -->
<PackageVersion Include="ArchiSteamFarm.Library" Version="5.2.6.3-preview.220608" />
<!-- DBreeze(key value store embedded) -->
<PackageVersion Include="DBreeze" Version="1.107.0" />
</ItemGroup>
</ItemGroup>
</Project>
-5
View File
@@ -1,5 +0,0 @@
<configuration>
<packageSources>
<add key="LocalNuGetPackages" value="./references/NuGetPackages" />
</packageSources>
</configuration>
+33 -43
View File
@@ -1,10 +1,10 @@
<h1 align="center">Watt Toolkit 🧰 (Former name Steam++)</h1>
<h1 align="center">Steam++ Tools 🧰</h1>
<div align="center">
English | [简体中文](./README.md)
"Watt Toolkit" is an open source cross-platform multi-purpose game toolkit, most of its features require you to download and install Steam to use it.
「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/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)
@@ -24,52 +24,40 @@ English | [简体中文](./README.md)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FSteamTools-Team%2FSteamTools%2Fbadge%3Fref%3Ddevelop&style=flat-square)](https://actions-badge.atrox.dev/BeyondDimension/SteamTools/goto?ref=develop)
[![GitHub Star](https://img.shields.io/github/stars/rmbadmin/SteamTools.svg?style=social)](https://github.com/BeyondDimension/SteamTools)
[![Gitee Star](https://gitee.com/rmbgame/SteamTools/badge/star.svg)](https://gitee.com/rmbgame/SteamTools)
[![Kofi](https://img.shields.io/badge/Kofi-RMBGAME-orange.svg?style=flat-square&logo=kofi)](https://ko-fi.com/rmbgame)
[![Patreon](https://img.shields.io/badge/Patreon-RMBGAME-red.svg?style=flat-square&logo=patreon)](https://www.patreon.com/rmbgame)
[![Bilibili](https://img.shields.io/badge/bilibili-软妹币玩家-blue.svg?style=flat-square&logo=bilibili)](https://space.bilibili.com/797215)
<img src="./resources/screenshot-1.en.webp" width="800" />
<br/>
<br/>
<img src="./resources/screenshot-android.en.png" width="800" />
</div>
<div align="center"><img src="./resources/screenshots.en.jpg" /></div>
## 🚀 Download channel
- [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)
- [AUR](https://aur.archlinux.org/packages/watt-toolkit-bin)(Official Release)
- [AUR dev](https://aur.archlinux.org/packages/watt-toolkit-git)(Pull latest code and build locally, build maybe failed, also don't guarantee availability)
- [Arch Linux Package](https://aur.archlinux.org/packages/steam%2B%2B-bin)(By [zhanghua000](https://github.com/zhanghua000))
## ✨ Functions
1. Account Switch <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" />
- 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.
2. Inventory Management <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" />
- 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.
3. Local Authentication <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" /> <img src="./resources/android-brands.svg" width="16" height="16" />
- 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.
4. ArchiSteamFarm <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" /> <img src="./resources/android-brands.svg" width="16" height="16" />
- Integration with [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm) provides functions such as hanging and dropping Steam Collectible Cards within the app.
5. Game Tools <img src="./resources/windows-brands.svg" width="16" height="16" />
- Force game windows to use borderless windowing
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.
<!--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
### Windows
OS | Version | Architectures | Lifecycle
--------------------------------------|----------------------------|-----------------|----------
[Windows Client][Windows-client] | 7 SP1(**\***), 8.1(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows 10 Client][Windows-client] | Version 1607+(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows 11][Windows-client] | Version 22000+ | x64, | [Windows][Windows-lifecycle]
[Windows Server][Windows-Server] | 2008 R2 SP1(**\***), 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
OS | Version | Architectures | Lifecycle
--------------------------------------|-------------------------|-----------------|----------
[Windows Client][Windows-client] | 7 SP1(**\***), 8.1 | x64 | [Windows][Windows-lifecycle]
[Windows 10 Client][Windows-client] | Version 1607+(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows Server][Windows-Server] | 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
**\*** Windows 7 SP1 must have [Extended Security Update](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) installed and will be released after November 2022 is no longer supported.
**\*** Windows 8.1 will no longer be supported in versions released after November 2022.
**\*** Windows Server 2008 R2 SP1 must have [Extended Security Update](https://docs.microsoft.com/en-us/lifecycle/faq/extended-security-updates) installed and will be released after November 2022 is no longer supported.
**\*** Microsoft Store(Desktop Bridge) Version 1809+
**\*** 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+
[Windows-client]: https://www.microsoft.com/windows/
[Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet
@@ -91,7 +79,7 @@ OS | Version | Architectures
[SUSE Enterprise Linux (SLES)][SLES] | 12 SP2+ | x64 | [SUSE][SLES-lifecycle]
[Ubuntu][Ubuntu] | 16.04, 18.04, 20.04+ | x64, Arm64 | [Ubuntu][Ubuntu-lifecycle]
[Deepin / UOS][Deepin] | 20+ | x64 | [Deepin][Deepin-lifecycle]
[Arch Linux][Arch] | | x64, Arm64 |
[Arch Linux][Arch] | | x64 |
[Alpine]: https://alpinelinux.org/
[Alpine-lifecycle]: https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases
@@ -129,7 +117,7 @@ OS | Version | Architectures
OS | Version | Architectures |
------------------------------|---------------------------|-------------------|
[macOS][macOS] | 10.15+ | x64, Arm64 |
[macOS][macOS] | 10.14+ | x64 |
[macOS]: https://support.apple.com/macos
@@ -155,6 +143,8 @@ OS | Version | Architectures |
## ⛔ Unsupported Operating System
- Windows 8
- [Due to Microsoft's official support for the product has ended](https://docs.microsoft.com/lifecycle/products/windows-8), so this program cannot run on this operating system, [It is recommended to upgrade to Windows 8.1](https://support.microsoft.com/windows/update-to-windows-8-1-from-windows-8-17fc54a7-a465-6b5a-c1a0-34140afd0669)
- Windows Server 2008 R2 SP1
- Only version 1.x is available, 2.x is not supported at first, and it is recommended to upgrade to a higher version
- Windows Server / Linux version without desktop GUI
- Xbox or Windows Mobile / Phone
@@ -164,7 +154,7 @@ Read what we [milestones](https://github.com/BeyondDimension/SteamTools/mileston
## ⌨️ Development Environment
[Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
[JetBrains Rider](https://www.jetbrains.com/rider/)
~~[Visual Studio 2022 for Mac](https://visualstudio.microsoft.com/zh-hans/vs/mac/preview/)~~
~~[Visual Studio 2022 for Mac Preview](https://visualstudio.microsoft.com/zh-hans/vs/mac/preview/)~~
~~[Visual Studio Code](https://code.visualstudio.com/)~~
- Supported Operating Systems
- [Windows 10 Version 2004 Or Higher: Home, Professional, Education, and Enterprise (LTSC and S are not supported)](https://docs.microsoft.com/en-us/visualstudio/releases/2019/system-requirements)
@@ -173,15 +163,17 @@ Read what we [milestones](https://github.com/BeyondDimension/SteamTools/mileston
- Web and Cloud
- ASP.NET and Web Development
- Desktop and Mobile Applications
- Mobile Development using .Net
- .NET Desktop Development
- UWP Development
- Mobile Development using .Net
- Other Toolsets
- .NET Core Cross Platform Development
- Single Component
- GitHub Extension for Visual Studio(Optional)
- GitHub Extension for Visual Studio
- Windows 10 SDK (10.0.19041.0)
- [Visual Studio Marketplace](https://marketplace.visualstudio.com/)
- [Avalonia for Visual Studio(Optional)](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio)
- [NUnit VS Templates(Optional)](https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnitTemplatesforVisualStudio)
- [Avalonia for Visual Studio](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio)
- [NUnit VS Templates](https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnitTemplatesforVisualStudio)
[OpenJDK 11](https://docs.microsoft.com/java/openjdk/download#openjdk-11)
[Android Studio 2021.1.1 Or Higher](https://developer.android.com/studio/)
@@ -196,8 +188,6 @@ Read what we [milestones](https://github.com/BeyondDimension/SteamTools/mileston
* [Hardcodet.NotifyIcon](https://github.com/HavenDV/Hardcodet.NotifyIcon.Wpf.NetCore)
* [System.Reactive](https://github.com/dotnet/reactive)
* [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy)
* [YARP](https://github.com/microsoft/reverse-proxy)
* [FastGithub](https://github.com/dotnetcore/FastGithub)
* [Portable.BouncyCastle](https://github.com/novotnyllc/bc-csharp)
* [Ninject](https://github.com/ninject/Ninject)
* [log4net](https://github.com/apache/logging-log4net)
@@ -270,4 +260,4 @@ Read what we [milestones](https://github.com/BeyondDimension/SteamTools/mileston
* [command-line-api](https://github.com/dotnet/command-line-api)
* [.NET Runtime](https://github.com/dotnet/runtime)
* [Fluent UI System Icons](https://github.com/microsoft/fluentui-system-icons)
* [Material design icons](https://github.com/google/material-design-icons)
* [Material design icons](https://github.com/google/material-design-icons)
+42 -57
View File
@@ -1,10 +1,10 @@
<h1 align="center">Watt Toolkit 🧰 (原名 Steam++)</h1>
<h1 align="center">Steam++ 工具箱 🧰</h1>
<div align="center">
[English](./README.en.md) | 简体中文
「Watt Toolkit」是一个开源跨平台的多功能游戏工具箱,此工具的大部分功能都是需要您下载安装 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)
@@ -22,65 +22,51 @@
[![BackManage WebSite](https://img.shields.io/badge/website@back_manage-Ant%20Design%20of%20Blazor-purple.svg?style=flat-square&color=512bd4)](https://github.com/ant-design-blazor/ant-design-blazor)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FSteamTools-Team%2FSteamTools%2Fbadge%3Fref%3Ddevelop&style=flat-square)](https://actions-badge.atrox.dev/BeyondDimension/SteamTools/goto?ref=develop)
[![GitHub Star](https://img.shields.io/github/stars/BeyondDimension/SteamTools.svg?logo=github)](https://github.com/BeyondDimension/SteamTools)
[![GitHub Star](https://img.shields.io/github/stars/BeyondDimension/SteamTools.svg?style=social)](https://github.com/BeyondDimension/SteamTools)
[![Gitee Star](https://gitee.com/rmbgame/SteamTools/badge/star.svg)](https://gitee.com/rmbgame/SteamTools)
[![爱发电](https://img.shields.io/badge/爱发电-软妹币玩家-blue.svg?style=flat-square&color=ea4aaa&logo=github-sponsors)](https://afdian.net/@rmbgame)
[![Kofi](https://img.shields.io/badge/Kofi-RMBGAME-orange.svg?style=flat-square&logo=kofi)](https://ko-fi.com/rmbgame)
[![Patreon](https://img.shields.io/badge/Patreon-RMBGAME-red.svg?style=flat-square&logo=patreon)](https://www.patreon.com/rmbgame)
[![Bilibili](https://img.shields.io/badge/bilibili-软妹币玩家-blue.svg?style=flat-square&logo=bilibili)](https://space.bilibili.com/797215)
[![QQ群](https://img.shields.io/badge/QQ群-960746023-blue.svg?style=flat-square&color=12b7f5&logo=qq)](https://jq.qq.com/?_wv=1027&k=3JKPt4xC)
<img src="./resources/screenshot-1.webp" width="800" />
<br/>
<br/>
<img src="./resources/screenshot-android.png" width="800" />
[![QQ群](https://img.shields.io/badge/QQ群-960746023-blue.svg?style=flat-square&color=12b7f5)](https://jq.qq.com/?_wv=1027&k=3JKPt4xC)
</div>
<div align="center"><img src="./resources/screenshots.jpg" /></div>
## 🚀 下载渠道
- [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)
- [AUR](https://aur.archlinux.org/packages/watt-toolkit-bin)(官方 Release 构建)
- [AUR dev](https://aur.archlinux.org/packages/watt-toolkit-git)(拉取最新源代码从本地构建,不保证可用性,构建也许会出现失败问题)
- [Arch Linux Package](https://aur.archlinux.org/packages/steam%2B%2B-bin)(By [zhanghua000](https://github.com/zhanghua000))
## ✨ 功能
1. 网络加速 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" /> <img src="./resources/android-brands.svg" width="16" height="16" />
- ~~使用 [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy) 开源项目进行本地反代来支持更快的访问游戏网站。~~
- 使用 [YARP.ReverseProxy](https://github.com/microsoft/reverse-proxy) 开源项目进行本地反代来支持更快的访问游戏网站。
2. 脚本配置 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" />
- 通过加速服务拦截网络请求将一些 JS 脚本注入在网页中,提供类似网页插件的功能。
3. 账号切换 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" />
- 一键切换已在当前 PC 上登录过的 Steam 账号,与管理家庭共享库排序及禁用等功能。
4. 库存管理 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" />
- 让您直接管理 Steam 游戏库存,可以编辑游戏名称和[自定义封面](https://www.steamgriddb.com/),也能解锁以及反解锁 Steam 游戏成就。
- 监控 Steam 游戏下载进度实现 Steam 游戏下载完成定时关机功能。
- 模拟运行 Steam 游戏,让您不用安装和下载对应的游戏也能挂游玩时间和 Steam 卡片
- 自助管理 Steam 游戏云存档,随时删除和上传自定义的存档文件至 Steam 云
5. 本地令牌 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" /> <img src="./resources/android-brands.svg" width="16" height="16" />
- 让您的手机令牌统一保存在电脑中,目前仅支持 Steam 令牌,后续会开发支持更多的令牌种类与云同步令牌。
6. 自动挂卡 <img src="./resources/windows-brands.svg" width="16" height="16" /> <img src="./resources/linux-brands.svg" width="16" height="16" /> <img src="./resources/apple-brands.svg" width="16" height="16" /> <img src="./resources/android-brands.svg" width="16" height="16" />
- 集成 [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm) 在应用内提供 挂机掉落 Steam 集换式卡牌 等功能。
7. 游戏工具 <img src="./resources/windows-brands.svg" width="16" height="16" />
- 强制游戏窗口使用无边框窗口化、更多功能待开发。
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. 其他游戏工具
- 目前已有强制游戏无边框窗口化
<!--发布配置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)-->
## 🖥 系统要求
### Windows
OS | Version | Architectures | Lifecycle
--------------------------------------|----------------------------|-----------------|----------
[Windows Client][Windows-client] | 7 SP1(**\***), 8.1(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows 10 Client][Windows-client] | Version 1607+(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows 11][Windows-client] | Version 22000+ | x64, | [Windows][Windows-lifecycle]
[Windows Server][Windows-Server] | 2008 R2 SP1(**\***), 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
OS | Version | Architectures | Lifecycle
--------------------------------------|-------------------------|-----------------|----------
[Windows Client][Windows-client] | 7 SP1(**\***), 8.1 | x64 | [Windows][Windows-lifecycle]
[Windows 10 Client][Windows-client] | Version 1607+(**\***) | x64 | [Windows][Windows-lifecycle]
[Windows Server][Windows-Server] | 2012+ | x64 | [Windows Server][Windows-Server-lifecycle]
**\*** Windows 7 SP1 必须安装 [扩展安全更新 (ESU)](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) 且将在不再支持 **2022/11** 后发布的版本。
**\*** Windows 8.1 将在不再支持 **2022/11** 后发布的版本。
**\*** Windows Server 2008 R2 SP1 必须安装 [扩展安全更新 (ESU)](https://docs.microsoft.com/zh-cn/lifecycle/faq/extended-security-updates) 且将在不再支持 **2022/11** 后发布的版本。
**\*** Microsoft Store(Desktop Bridge) Version 1809+
**\*** 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+
[Windows-client]: https://www.microsoft.com/windows/
[Windows-lifecycle]: https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet
@@ -102,7 +88,7 @@ OS | Version | Architectures
[SUSE Enterprise Linux (SLES)][SLES] | 12 SP2+ | x64 | [SUSE][SLES-lifecycle]
[Ubuntu][Ubuntu] | 16.04, 18.04, 20.04+ | x64, Arm64 | [Ubuntu][Ubuntu-lifecycle]
[Deepin / UOS][Deepin] | 20+ | x64 | [Deepin][Deepin-lifecycle]
[Arch Linux][Arch] | | x64,Arm64 |
[Arch Linux][Arch] | | x64 |
[Alpine]: https://alpinelinux.org/
[Alpine-lifecycle]: https://wiki.alpinelinux.org/wiki/Alpine_Linux:Releases
@@ -140,12 +126,10 @@ OS | Version | Architectures
OS | Version | Architectures |
------------------------------|---------------------------|-------------------|
[macOS][macOS] | 10.15+ | x64, Arm64 |
[macOS][macOS] | 10.14+ | x64 |
[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] |
@@ -166,6 +150,8 @@ OS | Version | Architectures |
## ⛔ 不受支持的操作系统
- Windows 8
- [由于微软官方对该产品的支持已结束](https://docs.microsoft.com/zh-cn/lifecycle/products/windows-8),故本程序无法在此操作系统上运行,[建议升级到 Windows 8.1](https://support.microsoft.com/zh-cn/windows/%E4%BB%8E-windows-8-%E6%9B%B4%E6%96%B0%E5%88%B0-windows-8-1-17fc54a7-a465-6b5a-c1a0-34140afd0669)
- Windows Server 2008 R2 SP1
- 仅可使用 1.X 版本,2.X 开始不受支持,建议升级到更高版本
- 无桌面 GUI 的 Windows Server / Linux 版本
- Xbox or Windows Mobile / Phone
@@ -175,31 +161,32 @@ OS | Version | Architectures |
## ⌨️ 开发环境
[Visual Studio 2022](https://visualstudio.microsoft.com/zh-hans/vs/)
[JetBrains Rider](https://www.jetbrains.com/rider/)
~~[Visual Studio 2022 for Mac](https://visualstudio.microsoft.com/zh-hans/vs/mac/)~~
~~[Visual Studio 2022 for Mac Preview](https://visualstudio.microsoft.com/zh-hans/vs/mac/)~~
~~[Visual Studio Code](https://code.visualstudio.com/)~~
- 系统要求
- [Windows 10 版本 2004 或更高版本:家庭版、专业版、教育版和企业版(不支持 LTSC 和 Windows 10 S,在较早的操作系统上可能不受支持)](https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/system-requirements)
- [macOS 10.14 Mojave 或更高版本](https://docs.microsoft.com/zh-cn/visualstudio/productinfo/vs2019-system-requirements-mac)
- 工作负荷
- 工作负载
- Web 和云
- ASP.NET 和 Web 开发
- 桌面应用和移动应用
- 使用 .NET 的移动开发 / .NET Multi-platform App UI 开发
- .NET 桌面开发
- 通用 Windows 平台开发
- 使用 .NET 的移动开发
- 其他工具集
- .NET Core 跨平台开发
- 单个组件
- GitHub Extension for Visual Studio(可选)
- GitHub Extension for Visual Studio
- Windows 10 SDK (10.0.19041.0)
- [Visual Studio Marketplace](https://marketplace.visualstudio.com/)
- [Avalonia for Visual Studio(可选)](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio)
- [NUnit VS Templates(可选)](https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnitTemplatesforVisualStudio)
- [Avalonia for Visual Studio](https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaforVisualStudio)
- [NUnit VS Templates](https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnitTemplatesforVisualStudio)
[OpenJDK 11](https://docs.microsoft.com/zh-cn/java/openjdk/download#openjdk-11)
[Android Studio 2021.1.1 或更高版本](https://developer.android.google.cn/studio/)
[Xcode 13 或更高版本](https://developer.apple.com/xcode/)
## 🏗️ [项目结构](./src/README.md)
详见 [./src/README.md](./src/README.md)
<!--
* [LibVLCSharp](https://github.com/videolan/libvlcsharp)
@@ -219,8 +206,6 @@ OS | Version | Architectures |
* [Hardcodet.NotifyIcon](https://github.com/HavenDV/Hardcodet.NotifyIcon.Wpf.NetCore)
* [System.Reactive](https://github.com/dotnet/reactive)
* [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy)
* [YARP](https://github.com/microsoft/reverse-proxy)
* [FastGithub](https://github.com/dotnetcore/FastGithub)
* [Portable.BouncyCastle](https://github.com/novotnyllc/bc-csharp)
* [Ninject](https://github.com/ninject/Ninject)
* [log4net](https://github.com/apache/logging-log4net)
+55
View File
@@ -0,0 +1,55 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31005.135
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Blazor.BackManage.Server", "src\ST.Blazor.BackManage\Server\ST.Blazor.BackManage.Server.csproj", "{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Blazor.BackManage.Client", "src\ST.Blazor.BackManage\Client\ST.Blazor.BackManage.Client.csproj", "{AB1EB396-ABBE-4CEA-A650-950A68440391}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Root", "_Root", "{3449FCD6-B7EB-40DF-A76A-6E22A8FB3A2F}"
ProjectSection(SolutionItems) = preProject
src\ST.Blazor.BackManage\README.md = src\ST.Blazor.BackManage\README.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|x64.ActiveCfg = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|x64.Build.0 = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|x86.ActiveCfg = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Debug|x86.Build.0 = Debug|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|Any CPU.Build.0 = Release|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|x64.ActiveCfg = Release|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|x64.Build.0 = Release|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|x86.ActiveCfg = Release|Any CPU
{7A8C458A-DF0B-4B20-BCBF-A433B6F6046A}.Release|x86.Build.0 = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|x64.ActiveCfg = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|x64.Build.0 = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|x86.ActiveCfg = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Debug|x86.Build.0 = Debug|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|Any CPU.Build.0 = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|x64.ActiveCfg = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|x64.Build.0 = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|x86.ActiveCfg = Release|Any CPU
{AB1EB396-ABBE-4CEA-A650-950A68440391}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {10D95A49-D583-49CD-8224-15A402FBEE1D}
EndGlobalSection
EndGlobal
+5 -5
View File
@@ -15,18 +15,19 @@
"src\\Avalonia.Themes.Fluent\\Avalonia.Themes.Fluent.csproj",
"src\\Avalonia.Win32\\Avalonia.Win32.csproj",
"src\\Avalonia.X11\\Avalonia.X11.csproj",
"src\\Avalonia.Desktop\\Avalonia.Desktop.csproj",
"src\\Avalonia.Skia.Internals\\Avalonia.Skia.Internals.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",
@@ -37,7 +38,6 @@
"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",
+1 -8
View File
@@ -15,14 +15,11 @@
"src\\Avalonia.Themes.Fluent\\Avalonia.Themes.Fluent.csproj",
"src\\Avalonia.Win32\\Avalonia.Win32.csproj",
"src\\Avalonia.X11\\Avalonia.X11.csproj",
"src\\Avalonia.Desktop\\Avalonia.Desktop.csproj",
"src\\Avalonia.Skia.Internals\\Avalonia.Skia.Internals.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",
@@ -41,10 +38,6 @@
"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",
+34 -826
View File
@@ -14,7 +14,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Root", "_Root", "{66839CD8
download-guide.md = download-guide.md
global.json = global.json
packaging\Info.plist = packaging\Info.plist
NuGet.Config = NuGet.Config
nuget.config = nuget.config
packaging\package.net472.ps1 = packaging\package.net472.ps1
README.en.md = README.en.md
README.md = README.md
@@ -152,6 +152,8 @@ 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}"
@@ -164,63 +166,7 @@ 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("{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("{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("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.iOS.ResSecrets", "src\ST.Client.iOS.ResSecrets\ST.Client.iOS.ResSecrets.csproj", "{872B65EB-E9DF-4357-B541-DD4A39B281A0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Mac.ResSecrets", "src\ST.Client.Mac.ResSecrets\ST.Client.Mac.ResSecrets.csproj", "{3950554F-7219-4AB9-9BE8-9B5EBDBCA88C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Windows.ResSecrets", "src\ST.Client.Windows.ResSecrets\ST.Client.Windows.ResSecrets.csproj", "{058F9955-8EFE-4BF3-A8F9-44C57B1F812E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Desktop", "src\Avalonia.Desktop\Avalonia.Desktop.csproj", "{FA9F0E89-E410-400A-86F3-C603E51E62A8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FDELauncher", "src\FDELauncher\FDELauncher.csproj", "{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Net.Http.Headers", "src\Microsoft.Net.Http.Headers\Microsoft.Net.Http.Headers.csproj", "{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Maui.App", "src\ST.Client.Maui.App\ST.Client.Maui.App.csproj", "{73A9AB65-AF95-4F27-98E2-B3296F9BC198}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Maui", "src\ST.Client.Maui\ST.Client.Maui.csproj", "{48417EE3-BACB-4E04-B48D-B3781862AD81}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Essentials", "src\Common.Essentials\Common.Essentials.csproj", "{41434AB5-48C3-47D4-8721-D118D87F472B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Essentials.Xamarin", "src\Common.Essentials.Xamarin\Common.Essentials.Xamarin.csproj", "{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common.Essentials.Maui", "src\Common.Essentials.Maui\Common.Essentials.Maui.csproj", "{5C440EC2-9251-4DB5-A14E-68FF37814F12}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.CommandLine", "src\ST.Client.CommandLine\ST.Client.CommandLine.csproj", "{1891DD14-628D-4921-8A1E-279320312E95}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.AppCenter", "src\ST.Client.AppCenter\ST.Client.AppCenter.csproj", "{3381B512-7CCB-4211-87B0-273260531BFC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.AppCenter.Avalonia", "src\ST.Client.AppCenter.Avalonia\ST.Client.AppCenter.Avalonia.csproj", "{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.JumpList", "src\ST.Client.JumpList\ST.Client.JumpList.csproj", "{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.JumpList.Avalonia", "src\ST.Client.JumpList.Avalonia\ST.Client.JumpList.Avalonia.csproj", "{F7938AFB-0573-47A9-BB99-F1D0501466D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.ReverseProxy", "src\ST.Client.ReverseProxy\ST.Client.ReverseProxy.csproj", "{3F394239-07BF-4FE6-861F-240355D15E3B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.ReverseProxy.Titanium", "src\ST.Client.ReverseProxy.Titanium\ST.Client.ReverseProxy.Titanium.csproj", "{92DEBBE5-FF82-4251-ABC6-75FF285E7149}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.ReverseProxy.Yarp", "src\ST.Client.ReverseProxy.Yarp\ST.Client.ReverseProxy.Yarp.csproj", "{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ST.Client.Windows.ScheduledTasks", "src\ST.Client.Windows.ScheduledTasks\ST.Client.Windows.ScheduledTasks.csproj", "{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.WebView2", "src\Avalonia.WebView2\Avalonia.WebView2.csproj", "{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Skia.Internals", "src\Avalonia.Skia.Internals\Avalonia.Skia.Internals.csproj", "{47C151DA-D2B1-43F4-A04E-B454E2134852}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -1640,6 +1586,34 @@ 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
@@ -1850,748 +1824,6 @@ 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
{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
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|ARM.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|ARM.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|ARM64.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|iPhone.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|x64.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|x64.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|x86.ActiveCfg = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Debug|x86.Build.0 = Debug|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|Any CPU.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|ARM.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|ARM.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|ARM64.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|ARM64.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|iPhone.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|iPhone.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|x64.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|x64.Build.0 = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|x86.ActiveCfg = Release|Any CPU
{FA9F0E89-E410-400A-86F3-C603E51E62A8}.Release|x86.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|ARM.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|ARM.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|ARM64.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|iPhone.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|x64.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|x64.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|x86.ActiveCfg = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Debug|x86.Build.0 = Debug|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|Any CPU.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|ARM.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|ARM.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|ARM64.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|ARM64.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|iPhone.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|iPhone.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|x64.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|x64.Build.0 = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|x86.ActiveCfg = Release|Any CPU
{7AAA8A01-A4FE-49AD-9664-AC53C4C8EAC6}.Release|x86.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|ARM.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|ARM.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|ARM64.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|iPhone.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|x64.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|x64.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|x86.ActiveCfg = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Debug|x86.Build.0 = Debug|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|Any CPU.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|ARM.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|ARM.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|ARM64.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|ARM64.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|iPhone.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|iPhone.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|x64.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|x64.Build.0 = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|x86.ActiveCfg = Release|Any CPU
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0}.Release|x86.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM64.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|ARM64.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhone.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhone.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x64.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x64.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x64.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x86.ActiveCfg = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x86.Build.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Debug|x86.Deploy.0 = Debug|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|Any CPU.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|Any CPU.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|Any CPU.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM64.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM64.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|ARM64.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhone.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhone.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhone.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x64.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x64.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x64.Deploy.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x86.ActiveCfg = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x86.Build.0 = Release|Any CPU
{73A9AB65-AF95-4F27-98E2-B3296F9BC198}.Release|x86.Deploy.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|ARM.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|ARM.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|ARM64.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|iPhone.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|x64.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|x64.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|x86.ActiveCfg = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Debug|x86.Build.0 = Debug|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|Any CPU.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|ARM.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|ARM.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|ARM64.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|ARM64.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|iPhone.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|iPhone.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|x64.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|x64.Build.0 = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|x86.ActiveCfg = Release|Any CPU
{48417EE3-BACB-4E04-B48D-B3781862AD81}.Release|x86.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|ARM.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|ARM64.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|iPhone.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|x64.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|x64.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|x86.ActiveCfg = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Debug|x86.Build.0 = Debug|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|Any CPU.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|ARM.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|ARM.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|ARM64.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|ARM64.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|iPhone.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|iPhone.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|x64.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|x64.Build.0 = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|x86.ActiveCfg = Release|Any CPU
{41434AB5-48C3-47D4-8721-D118D87F472B}.Release|x86.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|ARM.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|ARM.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|ARM64.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|iPhone.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|x64.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|x64.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|x86.ActiveCfg = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Debug|x86.Build.0 = Debug|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|Any CPU.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|ARM.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|ARM.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|ARM64.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|ARM64.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|iPhone.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|iPhone.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|x64.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|x64.Build.0 = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|x86.ActiveCfg = Release|Any CPU
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526}.Release|x86.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|ARM.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|ARM.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|ARM64.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|iPhone.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|x64.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|x64.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|x86.ActiveCfg = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Debug|x86.Build.0 = Debug|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|Any CPU.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|ARM.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|ARM.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|ARM64.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|ARM64.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|iPhone.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|iPhone.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|x64.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|x64.Build.0 = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|x86.ActiveCfg = Release|Any CPU
{5C440EC2-9251-4DB5-A14E-68FF37814F12}.Release|x86.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|ARM.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|ARM.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|ARM64.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|iPhone.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|x64.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|x64.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|x86.ActiveCfg = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Debug|x86.Build.0 = Debug|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|Any CPU.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|ARM.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|ARM.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|ARM64.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|ARM64.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|iPhone.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|iPhone.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|x64.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|x64.Build.0 = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|x86.ActiveCfg = Release|Any CPU
{1891DD14-628D-4921-8A1E-279320312E95}.Release|x86.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|ARM.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|ARM64.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|iPhone.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|x64.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|x64.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|x86.ActiveCfg = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Debug|x86.Build.0 = Debug|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|Any CPU.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|ARM.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|ARM.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|ARM64.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|ARM64.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|iPhone.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|iPhone.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|x64.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|x64.Build.0 = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|x86.ActiveCfg = Release|Any CPU
{3381B512-7CCB-4211-87B0-273260531BFC}.Release|x86.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|ARM.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|ARM.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|ARM64.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|iPhone.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|x64.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|x64.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|x86.ActiveCfg = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Debug|x86.Build.0 = Debug|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|Any CPU.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|ARM.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|ARM.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|ARM64.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|ARM64.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|iPhone.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|iPhone.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|x64.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|x64.Build.0 = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|x86.ActiveCfg = Release|Any CPU
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D}.Release|x86.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|ARM.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|ARM.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|ARM64.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|iPhone.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|x64.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|x64.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|x86.ActiveCfg = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Debug|x86.Build.0 = Debug|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|Any CPU.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|ARM.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|ARM.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|ARM64.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|ARM64.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|iPhone.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|iPhone.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|x64.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|x64.Build.0 = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|x86.ActiveCfg = Release|Any CPU
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198}.Release|x86.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|ARM.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|ARM.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|ARM64.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|iPhone.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|x64.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|x64.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|x86.ActiveCfg = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Debug|x86.Build.0 = Debug|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|Any CPU.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|ARM.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|ARM.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|ARM64.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|ARM64.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|iPhone.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|iPhone.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|x64.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|x64.Build.0 = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|x86.ActiveCfg = Release|Any CPU
{F7938AFB-0573-47A9-BB99-F1D0501466D2}.Release|x86.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|ARM.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|ARM64.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|iPhone.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|x64.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Debug|x86.Build.0 = Debug|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|Any CPU.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|ARM.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|ARM.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|ARM64.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|ARM64.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|iPhone.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|iPhone.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|x64.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|x64.Build.0 = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|x86.ActiveCfg = Release|Any CPU
{3F394239-07BF-4FE6-861F-240355D15E3B}.Release|x86.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|ARM.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|ARM.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|ARM64.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|iPhone.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|x64.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|x64.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|x86.ActiveCfg = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Debug|x86.Build.0 = Debug|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|Any CPU.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|ARM.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|ARM.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|ARM64.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|ARM64.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|iPhone.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|iPhone.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|x64.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|x64.Build.0 = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|x86.ActiveCfg = Release|Any CPU
{92DEBBE5-FF82-4251-ABC6-75FF285E7149}.Release|x86.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|ARM.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|ARM64.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|iPhone.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|x64.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|x64.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|x86.ActiveCfg = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Debug|x86.Build.0 = Debug|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|Any CPU.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|ARM.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|ARM.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|ARM64.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|ARM64.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|iPhone.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|iPhone.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|x64.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|x64.Build.0 = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|x86.ActiveCfg = Release|Any CPU
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42}.Release|x86.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|ARM.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|ARM.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|ARM64.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|iPhone.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|x64.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|x64.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|x86.ActiveCfg = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Debug|x86.Build.0 = Debug|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|Any CPU.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|ARM.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|ARM.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|ARM64.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|ARM64.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|iPhone.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|iPhone.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|x64.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|x64.Build.0 = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|x86.ActiveCfg = Release|Any CPU
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81}.Release|x86.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|ARM.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|ARM.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|ARM64.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|iPhone.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|x64.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|x64.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|x86.ActiveCfg = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Debug|x86.Build.0 = Debug|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|Any CPU.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|ARM.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|ARM.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|ARM64.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|ARM64.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|iPhone.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|iPhone.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|x64.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|x64.Build.0 = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|x86.ActiveCfg = Release|Any CPU
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -2648,6 +1880,7 @@ 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}
@@ -2655,34 +1888,9 @@ 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}
{FA9F0E89-E410-400A-86F3-C603E51E62A8} = {910D6A0F-42AB-4B65-B532-852E864EC006}
{C7F109B9-EA88-4B7E-ADB5-D6407686ADE0} = {673FF8CD-9E85-4FA1-ABFC-D1149675E138}
{48417EE3-BACB-4E04-B48D-B3781862AD81} = {8E38AAF2-8C7D-4B0D-AB25-AB37EECB4029}
{41434AB5-48C3-47D4-8721-D118D87F472B} = {83186945-EC14-4B3F-8C6F-B205AA184CA4}
{07C9AC06-5D84-41AB-A3C9-5C5B1A27F526} = {83186945-EC14-4B3F-8C6F-B205AA184CA4}
{1891DD14-628D-4921-8A1E-279320312E95} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{3381B512-7CCB-4211-87B0-273260531BFC} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{CCB0CAEB-FEFC-4424-B6F4-53D3BB70154D} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{59E25DF3-C8D0-484E-BFD0-637FE5CBC198} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{F7938AFB-0573-47A9-BB99-F1D0501466D2} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{3F394239-07BF-4FE6-861F-240355D15E3B} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{92DEBBE5-FF82-4251-ABC6-75FF285E7149} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{D8ED7A17-D693-45FF-B75A-D9B12DAB5A42} = {327FDEE7-C4C8-4AA4-A7B0-8BCE3D75346F}
{0EEA90D8-FAB7-48C9-8C15-1E61AEF8AB81} = {E50441E8-75F3-406E-9921-30BFC211B5CE}
{8C996C50-B29F-4CB6-90A7-77C9CD3B0B70} = {910D6A0F-42AB-4B65-B532-852E864EC006}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9313F2B4-10DA-43AA-A481-CAA7571C740C}
RESX_NeutralResourcesLanguage = zh-Hans
SolutionGuid = {9313F2B4-10DA-43AA-A481-CAA7571C740C}
EndGlobalSection
EndGlobal
-8
View File
@@ -1,8 +0,0 @@
<Project>
<PropertyGroup>
<DefineConstants>WINDOWS;$(DefineConstants)</DefineConstants>
<SupportedOSPlatformVersion>7.0</SupportedOSPlatformVersion>
<!-- https://www.nuget.org/packages/Microsoft.Windows.SDK.NET.Ref -->
<WindowsSdkPackageVersion>10.0.19041.26</WindowsSdkPackageVersion>
</PropertyGroup>
</Project>
+10 -19
View File
@@ -1,32 +1,23 @@
# 下载指南
- Desktop(桌面端)
- Windows
- 如果你使用 Intel、AMD 的 x64(x86-64/AMD64) 芯片的 PC,则下载文件名中带有 **win_x64** 的文件
- **框架依赖版(framework-dependent executable / fde)**
- 需要 **《ASP.NET Core 运行时 6.0.x》** 与 **《.NET 运行时 6.0.x》**,如果你 **已安装** 了相关运行时,则下载文件名中带有 **fde** 的文件,可减少本应用占用的磁盘空间
- 如果你 **未安装相关运行时则应下载文件名中不包含 fde 的文件**,或在 [此下载](https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0) 最新的 6.0.x 运行时
- 在网页上点击 安装程序 x64 的链接即可下载,通常下载的文件名如下,将其安装后即可,无安装顺序要求
- dotnet-runtime-6.0.x-win-x64.exe (.NET 运行时 6.0.x)
- aspnetcore-runtime-6.0.x-win-x64.exe (ASP.NET Core 运行时 6.0.x)
- 其他也包含了所需的运行时的下载项,但不推荐仅为运行本应用而安装
- Hosting Bundle 还包含了本应用不需要的 IIS 运行时支持 (ASP.NET Core Module v2) 与 x86 的多个运行库
- SDK 包含了较多不需要的内容
- 如果你使用 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)
- macOS
- 如果你使用 Intel 的 x64(x86-64) 芯片的 Mac,则下载文件名中带有 **macos_x64** 的文件
- 如果你使用 ARM64(Apple Silicon) 芯片的 Mac,例如 **Apple M1**,则下载文件名中带有 **macos_arm64** 的文件
- 如果你使用 Intel、AMD 的 x64 芯片的 Mac(较为**普遍**),则下载文件名中带有 **macos_x64** 的文件
- 如果你使用 ARM64 芯片的 Mac(较为**稀有**),例如 **M1**,则下载文件名中带有 **macos_arm64** 的文件
- Linux
- 如果你使用 Intel、AMD 的 x64(x86-64) 芯片的 PC 则下载文件名中带有 **linux_x64** 的文件
- 如果你使用 ARM64 芯片的 PC 例如 **Raspberry Pi Model 3+**,则下载文件名中带有 **linux_arm64** 的文件
<!--
- 如果你使用 Intel、AMD 的 x64 芯片的 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
View File
@@ -1,5 +1,8 @@
{
"msbuild-sdks": {
"MSBuild.Sdk.Extras": "3.0.44"
},
"sdk": {
"version": "6.0.101"
}
}
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="dotnet-experimental" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-experimental/nuget/v3/index.json" />
<add key="AvaloniaCI" value="https://nuget.avaloniaui.net/repository/avalonia-all/index.json" />
</packageSources>
</configuration>
+4 -4
View File
@@ -3,15 +3,15 @@
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>Watt Toolkit</string>
<string>Steam++</string>
<key>CFBundleIdentifier</key>
<string>net.steampp.app</string>
<key>CFBundleShortVersionString</key>
<string>2.8.3</string>
<string>2.4.10</string>
<key>CFBundleVersion</key>
<string>2.8.3.0</string>
<string>2.4.10.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<string>10.14</string>
<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>
<key>CFBundleInfoDictionaryVersion</key>
+18 -12
View File
@@ -1,7 +1,7 @@
create_app_structure() {
APPNAME=$1
APPDIR="$APPNAME.app/Contents"
APPICONS="${{ Steam++_IcnsFile }}"
APPICONS="/Users/mossimo/bin/logo.icns"
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>${{ Steam++_ShortVersion }}</string>
<string>2.6.7</string>
<key>CFBundleVersion</key>
<string>${{ Steam++_Version }}</string>
<string>2.6.7.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<string>10.14</string>
<key>CFBundleDevelopmentRegion</key>
<string>zh_CN</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleExecutable</key>
<string>${{ Steam++_RunName }}</string>
<string>$PLIST_APPNAME</string>
<key>CFBundleGetInfoString</key>
<string>${{ Steam++_RunName }}</string>
<string>$PLIST_APPNAME</string>
<key>CFBundleIconFile</key>
<string>$PLIST_APPNAME</string>
<key>CFBundlePackageType</key>
@@ -64,10 +64,10 @@ EOF
fi
}
cd "${{ Steam++_OutPutFilePath }}"
cd "/Users/mossimo/bin"
BINARYNAME="${{ Steam++_AppName }}"
BINARYNAME="Steam++"
echo "Building Avalonia demo..."
@@ -80,8 +80,14 @@ rm -rf "$APPDIR"
create_app_structure "$APPNAME"
emit_plist "$APPNAME" "$APPDIR" true
mv -f "${{ Steam++_APPDIR }}" "$APPDIR/MacOS"
chmod +x "$APPDIR/MacOS/Steam++"
cd "$APPDIR/Frameworks"
mkdir "${{ Steam++_APPDIR }}"
mv -f "${{ Steam++_OutPutFilePath }}/$BINARYNAME.app" "${{ Steam++_APPDIR }}/$BINARYNAME.app"
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"
-1
View File
@@ -1 +0,0 @@
dotnet publish "..\src\ST.Client.Desktop.Avalonia.App\ST.Client.Avalonia.App.csproj" -c Release -p:PublishProfile=win-x64 -p:DeployOnBuild=true -p:ExtraDefineConstants=win-x64 --nologo
+2 -2
View File
@@ -11,7 +11,7 @@ $proj_path = "$RootPath\src\ST.Client.Desktop.Avalonia.App\ST.Client.Avalonia.Ap
$publishtool_dir = "$RootPath\src\ST.Tools.Publish"
$publishtool_exe = "$publishtool_dir\bin\Release\net6.0\p.exe"
$build_pubxmls = "fd-win-x64","win-x64","fd-win-x86","win-x86","osx-x64","linux-x64","linux-arm64","osx-arm64"
$build_pubxmls = "fd-win-x64","win-x64","osx-x64","linux-x64","linux-arm64","osx-arm64"
function Build-PublishTool
{
@@ -37,7 +37,7 @@ function Build-PublishTool
Build-App $pubxml
}
& $publishtool_exe full -token $('"')$env:Token$('"') $dev -win_sign_pfx_pwd $('"')$env:WIN_SIGN_PFX_PWD('"')
& $publishtool_exe full -token $('"')$env:Token$('"') $dev
if ($LASTEXITCODE) { exit $LASTEXITCODE }
}
-7
View File
@@ -1,7 +0,0 @@
[*.cs]
# IDE0055: 修正格式
dotnet_diagnostic.IDE0055.severity = suggestion
# IDE1006: 命名样式
dotnet_diagnostic.IDE1006.severity = suggestion
BIN
View File
Binary file not shown.
-98
View File
@@ -1,98 +0,0 @@
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 黄陂
@@ -1,8 +0,0 @@
# 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.
+45
View File
@@ -0,0 +1,45 @@
// https://github.com/NLog/NLog/blob/v4.7.10/src/NLog/LogManager.cs
using NLog;
using NLog.Config;
using System;
namespace ArchiSteamFarm
{
public static class LogManager
{
static readonly LogFactory factory = new();
[CLSCompliant(false)]
public static Logger GetLogger(string name)
{
return factory.GetLogger(name);
}
public static void Flush()
{
factory.Flush();
}
public static void ReconfigExistingLoggers()
{
factory.ReconfigExistingLoggers();
}
public static LoggingConfiguration Configuration
{
get => factory.Configuration;
set => factory.Configuration = value;
}
public static event EventHandler<LoggingConfigurationChangedEventArgs> ConfigurationChanged
{
add => factory.ConfigurationChanged += value;
remove => factory.ConfigurationChanged -= value;
}
public static void Shutdown()
{
factory.Shutdown();
}
}
}
+91
View File
@@ -0,0 +1,91 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
namespace ArchiSteamFarm
{
public static class ASFPathHelper
{
static readonly Lazy<string> _AppDataDirectory = new(() =>
{
var path = Path.Combine(IOPath.AppDataDirectory, "ASF");
IOPath.DirCreateByNotExists(path);
return path;
});
/// <summary>
/// <list type="bullet">
/// <item>
/// AppData\ASF\config
/// </item>
/// <item>
/// AppData\ASF\plugins
/// </item>
/// </list>
/// </summary>
public static string AppDataDirectory => _AppDataDirectory.Value;
/// <summary>
/// <list type="bullet">
/// <item>
/// Windows:Logs\ASF
/// </item>
/// <item>
/// Windows Desktop Bridge:{CacheDirectory}\Logs\ASF
/// </item>
/// </list>
/// </summary>
/// <param name="logDirPath"></param>
/// <returns></returns>
public static string GetLogDirectory([NotNull] string logDirPath)
{
var path = (logDirPath.EndsWith(Path.DirectorySeparatorChar) ? logDirPath : logDirPath + Path.DirectorySeparatorChar) + "ASF";
IOPath.DirCreateByNotExists(path);
return path;
}
public static string GetNLogArchiveFileName([NotNull] string logDirectory)
{
var path = logDirectory + Path.DirectorySeparatorChar + SharedInfo.ArchivalLogFile;
return path;
}
public static string GetNLogFileName([NotNull] string logDirectory)
{
var path = logDirectory + Path.DirectorySeparatorChar + SharedInfo.LogFile;
return path;
}
static readonly Lazy<string> _WebsiteDirectory = new(() =>
{
var path = Path.Combine(IOPath.AppDataDirectory, "ASF", "www");
IOPath.DirCreateByNotExists(path);
return path;
});
/// <summary>
/// <list type="bullet">
/// <item>
/// AppData\ASF\www
/// </item>
/// </list>
/// </summary>
public static string WebsiteDirectory => _WebsiteDirectory.Value;
#if DEBUG
[Obsolete("use AppDataDirectory")]
public static string HomeDirectory => AppDataDirectory;
#endif
public const string NLogGeneralLayout = NLog.Logging.GeneralLayout;
}
public enum ASFPathFolder
{
ASF,
Config,
Plugin,
WWW,
Logs,
}
}
@@ -0,0 +1,14 @@
using System;
using System.Threading.Tasks;
namespace ArchiSteamFarm
{
public interface IArchiSteamFarmHelperService
{
static IArchiSteamFarmHelperService Instance => DI.Get<IArchiSteamFarmHelperService>();
int IPCPortValue { get; }
Task Restart();
}
}
+2 -3
View File
@@ -3,6 +3,5 @@ using static System.Properties.ThisAssembly;
[assembly: SuppressIldasm]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Avalonia" + PublicKey)]
[assembly: InternalsVisibleTo("Xamarin.Forms.Platform.Android.UnitTests" + PublicKey)]
[assembly: InternalsVisibleTo("Assembly-CSharp" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Mobile" + PublicKey)]
[assembly: InternalsVisibleTo("System.Application.SteamTools.Client.Desktop" + PublicKey)]
-7
View File
@@ -1,7 +0,0 @@
# 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.
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
<supportedRuntime version="v2.0.50727" />
</startup>
</configuration>
Binary file not shown.
+41 -59
View File
@@ -1,32 +1,22 @@
### 公告
1. 非简中语言将默认隐藏加速和脚本功能,仅能通过切换语言并重启程序的方式还原被隐藏的功能
2. 因经济状况原因,现已停止短信服务节约开销,后续会推出邮箱注册登录,对于仅使用手机号登录的用户请绑定第三方快速登录,否则注销后将无法再次登录,需要等待至邮箱服务推出后支持会暂时在开放短信服务提供换绑邮箱。
3. 自动更新目前仅 Windows 端可用,且由于下载渠道限速可能导致无法更新成功,推荐在官网链接的网盘或群文件中下载压缩包解压覆盖更新(应用商店版由商店更新不受此影响)
4. 在 Android 上因系统限制,目前的加速功能无法正常使用,所以此功能已放弃继续开发,如仍想使用需要自行导入证书到系统目录,使用 adb 工具或 Magisk 之类的软件操作,未来会使用不需要证书的加速功能替换此功能
5. fde 版本需要安装 [ASP.NET Core 运行时 6.0.8 (x64) 与 .NET Core 运行时 6.0.8 (x64)](https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0)
6. Windows x86 与 x64 版本令牌本机加密互不兼容,使用两者版本时注意令牌加密后的文件不能共用。
7. 由于新版本加速功能重构,调整了部分加速项目,这会影响旧版本程序使用加速功能
8. 为了能继续维持开发,从此版本开始将会添加程序内广告,赞助用户可以在设置中关闭所有广告
### 版本亮点
1. .NET 运行时升级至 6.0.8,使用 fde 版本需要升级运行时
2. ASF 升级至 V5.2.8.4
1. ASF 升级至 **V5.2.2.4**
2. Android 12 适配
3. Android 上的 ASP.NET Core 升级至 2.2.5
4. Desktop 上的 Avalonia 升级至 0.10.12
### 修复问题
1. 修复 2.8.0 ~ 2.8.2 中 AppData/Config.mpo 文件大小为 0 时导致的程序无法正常启动
2. 修复 Windows 上版本更新在 2.8.0 ~ 2.8.2 中非 FDE 版本识别为 FDE 版
3. 改进 调整代理模式顺序,Hosts 模式置顶
4. 修复 划词翻译等一些 JS 脚本
5. 改进 macOS 上的证书安装
6. 尝试修复 网络加速中能导致内存泄露的问题
7. 改进 非简中默认隐藏加速与脚本仅在 Windows 上生效
8. 改进 减少 Android 上的启动时间
9. 修复 退出程序时可能引发的闪退
10. 修复 macOS/Linux 上设置页面打不开的问题
11. 修复 网络加速中网页上出现 Because https://... actually points to WattToolkit itself...
12. 尝试修复 ASF 控制台中输入时卡死
<!--
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 导致失败的错误提示
### 已知问题
- 除 Windows 之外的平台此软件自动更新尚不可用
@@ -34,6 +24,8 @@
- macOS
- [尚未公证](https://support.apple.com/zh-cn/guide/mac-help/mh40616/10.15/mac/10.15),这会影响 macOS Catalina(版本 10.15)以上版本
- Linux
- **Hosts 代理模式**可能无法配置成功,推荐使用**系统代理模式**
- 系统代理模式下 Discord 更新下载加速不可用
- 窗口弹出位置不正确
- 鼠标指针浮动样式不正确
- Windows
@@ -46,22 +38,19 @@
- 需要安装 Extended Security Update
- 在不符合先决条件的情况下运行可能导致
- 程序无法正常运行
- **解决方案**
- 使用 Windows Update 更新系统补丁
- 运行程序时提示 计算机中丢失 api-ms-win-core-winrt-l1-1-0.dll
- **解决方案**
- 下载 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 之类的软件操作,未来会使用不需要证书的加速功能替换此功能
- **解决方案**
- 因 [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 文件可使用解压工具打开或解压,找到此文件复制即可
-->
[![WebSite steampp.net](https://img.shields.io/badge/WebSite-steampp.net-brightgreen.svg?style=flat-square&color=61dafb)](https://steampp.net)
[![Steam++ v2.8.3](https://img.shields.io/badge/Steam++-v2.8.3-brightgreen.svg?style=flat-square&color=512bd4)]()
[![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)]()
##### [不知道该下载哪个文件?](./download-guide.md)
@@ -70,28 +59,21 @@
### 文件校验
| File | Checksum (SHA256) |
| ---- | ---- |
| Steam++_win_x64_v2.8.3.7z | SHA256 |
| Steam++_win_x64_fde_v2.8.3.7z | SHA256 |
| Steam++_win_x64_v2.6.7.7z | SHA256 |
| Steam++_win_x64_fde_v2.6.7.7z | SHA256 |
| | |
| Steam++_win_x64_v2.8.3.exe | SHA256 |
| Steam++_win_x64_fde_v2.8.3.exe | SHA256 |
| Steam++_win_x64_v2.6.7.exe | SHA256 |
| Steam++_win_x64_fde_v2.6.7.exe | SHA256 |
| | |
| Steam++_win_x86_v2.8.3.7z | SHA256 |
| Steam++_win_x86_fde_v2.8.3.7z | SHA256 |
| Steam++_linux_x64_v2.6.7.7z | SHA256 |
| Steam++_linux_arm64_v2.6.7.7z | SHA256 |
| | |
| Steam++_win_x86_v2.8.3.exe | SHA256 |
| Steam++_win_x86_fde_v2.8.3.exe | SHA256 |
| Steam++_linux_x64_v2.6.7.deb | SHA256 |
| Steam++_linux_arm64_v2.6.7.deb | SHA256 |
| | |
| Steam++_linux_x64_v2.8.3.7z | SHA256 |
| Steam++_linux_arm64_v2.8.3.7z | SHA256 |
| Steam++_linux_x64_v2.6.7.rpm | SHA256 |
| Steam++_linux_arm64_v2.6.7.rpm | SHA256 |
| | |
| Steam++_linux_x64_v2.8.3.deb | SHA256 |
| Steam++_linux_arm64_v2.8.3.deb | SHA256 |
| Steam++_macos_x64_v2.6.7.dmg | SHA256 |
| | |
| Steam++_linux_x64_v2.8.3.rpm | SHA256 |
| Steam++_linux_arm64_v2.8.3.rpm | SHA256 |
| | |
| Steam++_macos_x64_v2.8.3.dmg | SHA256 |
| Steam++_macos_arm64_v2.8.3.dmg | SHA256 |
| | |
| Steam++_android_v2.8.3.apk | SHA256 |
| Steam++_android_v2.6.7.apk | SHA256 |
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.
+90 -91
View File
@@ -1,102 +1,101 @@
namespace System;
using System.IO;
using System.Linq;
public static partial class ProjectPathUtil
namespace System
{
#pragma warning disable SA1307 // Accessible fields should begin with upper-case letter
public static readonly string projPath;
#pragma warning restore SA1307 // Accessible fields should begin with upper-case letter
public const string ProjectDir_AvaloniaAppBridge = "ST.Client.Desktop.Avalonia.App.Bridge";
public const string ProjectDir_ConsoleAppBridge = "ST.Client.Desktop.Console.App.Bridge";
public const string ProjectDir_ConsoleAppBridgePackage = "ST.Client.Desktop.Avalonia.App.Bridge.Package";
public const string ProjectDir_AvaloniaApp = "ST.Client.Desktop.Avalonia.App";
public const string ProjectDir_Win7Troubleshoot = "ST.Tools.Win7Troubleshoot";
public const string ProjectDir_CoreLib = "Common.CoreLib";
public const string ProjectDir_ClienDroidLib = "Common.ClientLib.Droid";
public const string ProjectDir_ClientDesktop = "ST.Client.Desktop";
public const string ProjectDir_ST = "ST";
public const string ProjectDir_STClient = "ST.Client";
public const string release_template_md =
@"\release-template.md";
[Obsolete("use MainDllPath_", true)]
public const string MainDllPath =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Steam++.dll";
public const string MainDllPath_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Steam++.dll";
[Obsolete("use DirPublishWinX86_")]
public const string DirPublishWinX86 =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\win-x86";
public const string DirPublishWinX86_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\win-x86";
[Obsolete("use DirPublishWinX64_", true)]
public const string DirPublishWinX64 =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\win-x64";
[Obsolete("use DirPublishWinX64_FDE_", true)]
public const string DirPublishWinX64_FDE =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\FrameworkDependent\win-x64";
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";
[Obsolete("use DirPublish_", true)]
public const string DirPublish =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish";
public const string DirPublish_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish";
public const string DirPublish_FDE_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\FrameworkDependent";
//public const string DirPublish_Win7Troubleshoot =
// @"\src\" + ProjectDir_Win7Troubleshoot + @"\bin\Release\Publish\net35";
static ProjectPathUtil()
public static partial class ProjectPathUtil
{
projPath = GetProjectPath();
if (!Directory.Exists(Path.Combine(projPath, ProjectDir_AvaloniaApp)))
public static readonly string projPath;
public const string ProjectDir_AvaloniaAppBridge = "ST.Client.Desktop.Avalonia.App.Bridge";
public const string ProjectDir_ConsoleAppBridge = "ST.Client.Desktop.Console.App.Bridge";
public const string ProjectDir_ConsoleAppBridgePackage = "ST.Client.Desktop.Avalonia.App.Bridge.Package";
public const string ProjectDir_AvaloniaApp = "ST.Client.Desktop.Avalonia.App";
public const string ProjectDir_Win7Troubleshoot = "ST.Tools.Win7Troubleshoot";
public const string ProjectDir_CoreLib = "Common.CoreLib";
public const string ProjectDir_ClienDroidLib = "Common.ClientLib.Droid";
public const string ProjectDir_ClientDesktop = "ST.Client.Desktop";
public const string ProjectDir_ST = "ST";
public const string ProjectDir_STClient = "ST.Client";
public const string release_template_md =
@"\release-template.md";
[Obsolete("use MainDllPath_", true)]
public const string MainDllPath =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Steam++.dll";
public const string MainDllPath_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Steam++.dll";
[Obsolete("use DirPublishWinX86_", true)]
public const string DirPublishWinX86 =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\win-x86";
public const string DirPublishWinX86_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\win-x86";
[Obsolete("use DirPublishWinX64_", true)]
public const string DirPublishWinX64 =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\win-x64";
[Obsolete("use DirPublishWinX64_FDE_", true)]
public const string DirPublishWinX64_FDE =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish\FrameworkDependent\win-x64";
public const string DirPublishWinX64_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\win-x64";
public const string DirPublishWinX64_FDE_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\FrameworkDependent\win-x64";
[Obsolete("use DirPublish_", true)]
public const string DirPublish =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\Release\Publish";
public const string DirPublish_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish";
public const string DirPublish_FDE_ =
@"\src\" + ProjectDir_AvaloniaApp + @"\bin\{0}\Publish\FrameworkDependent";
//public const string DirPublish_Win7Troubleshoot =
// @"\src\" + ProjectDir_Win7Troubleshoot + @"\bin\Release\Publish\net35";
static ProjectPathUtil()
{
projPath = GetProjectPathByServerTool();
projPath = GetProjectPath();
if (!Directory.Exists(Path.Combine(projPath, ProjectDir_AvaloniaApp)))
{
projPath = GetProjectPathByServerTool();
}
}
}
/// <summary>
/// 获取当前项目绝对路径(.sln文件所在目录)
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
static string GetProjectPath(string? path = null)
{
path ??= AppContext.BaseDirectory;
if (!Directory.GetFiles(path, "*.sln").Any())
/// <summary>
/// 获取当前项目绝对路径(.sln文件所在目录)
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
static string GetProjectPath(string? path = null)
{
var parent = Directory.GetParent(path);
if (parent == null) return string.Empty;
return GetProjectPath(parent.FullName);
path ??= AppContext.BaseDirectory;
if (!Directory.GetFiles(path, "*.sln").Any())
{
var parent = Directory.GetParent(path);
if (parent == null) return string.Empty;
return GetProjectPath(parent.FullName);
}
return path;
}
return path;
}
/// <summary>
/// 获取公开客户端项目绝对路径,仅供服务端工具项目中使用
/// </summary>
/// <returns></returns>
static string GetProjectPathByServerTool()
{
var projPath_ = GetProjectPath();
return Path.GetFullPath(Path.Combine(projPath_, "..", "SteamTools"));
/// <summary>
/// 获取公开客户端项目绝对路径,仅供服务端工具项目中使用
/// </summary>
/// <returns></returns>
static string GetProjectPathByServerTool()
{
var projPath_ = GetProjectPath();
return Path.GetFullPath(Path.Combine(projPath_, "..", "SteamTools"));
}
}
}
-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--><g fill="#3ddc84"><path d="M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"/></g></svg>

Before

Width:  |  Height:  |  Size: 570 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--><g fill="#A2AAAD"><path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"/></g></svg>

Before

Width:  |  Height:  |  Size: 704 B

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--><g fill="#E95420"><path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.1.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc.--><g fill="#00adef"><path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"/></g></svg>

Before

Width:  |  Height:  |  Size: 404 B

@@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Portable.BouncyCastle" Version="1.8.10" />
<PackageReference Include="System.Security.Cryptography.ProtectedData" Version="5.0.0" />
</ItemGroup>
+1 -1
View File
@@ -10,7 +10,7 @@
<PackageReference Include="Gameloop.Vdf" Version="0.6.1" />
<PackageReference Include="log4net" Version="2.0.12" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="Ninject" Version="3.3.4" />
<PackageReference Include="Portable.BouncyCastle" Version="1.8.10" />
<PackageReference Include="SharpZipLib" Version="1.3.3" />
+1 -1
View File
@@ -139,7 +139,7 @@
<PackageReference Include="LivetCask.Mvvm" Version="3.2.3.2" />
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.31" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="System.Reactive" Version="5.0.0" />
<PackageReference Include="System.IO.FileSystem" Version="4.3.0" />
+459 -520
View File
File diff suppressed because it is too large Load Diff
@@ -1,42 +0,0 @@
using Avalonia.Controls;
using Avalonia.Platform;
// https://github.com/AvaloniaUI/Avalonia/blob/0.10.13/src/Avalonia.Desktop/AppBuilderDesktopExtensions.cs
namespace Avalonia
{
public static class AppBuilderDesktopExtensions
{
public static TAppBuilder UsePlatformDetect<TAppBuilder>(this TAppBuilder builder)
where TAppBuilder : AppBuilderBase<TAppBuilder>, new()
{
#if WINDOWS
builder.UseWin32();
#else
var os = builder.RuntimePlatform.GetRuntimeInfo().OperatingSystem;
// We don't have the ability to load every assembly right now, so we are
// stuck with manual configuration here
// Helpers are extracted to separate methods to take the advantage of the fact
// that CLR doesn't try to load dependencies before referencing method is jitted
// Additionally, by having a hard reference to each assembly,
// we verify that the assemblies are in the final .deps.json file
// so .NET Core knows where to load the assemblies from,.
switch (os)
{
case OperatingSystemType.WinNT:
builder.UseWin32();
break;
case OperatingSystemType.OSX:
builder.UseAvaloniaNative();
break;
default:
builder.UseX11();
break;
}
#endif
builder.UseSkia();
return builder;
}
}
}
@@ -1,31 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0;net6.0-windows</TargetFrameworks>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\AssemblyInfo.Version.Max.cs">
<LinkBase>Properties</LinkBase>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Avalonia.Skia.Internals\Avalonia.Skia.Internals.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Win32" />
</ItemGroup>
<ItemGroup Condition=" !$(TargetFramework.Contains('-windows')) ">
<PackageReference Include="Avalonia.X11" />
<PackageReference Include="Avalonia.Native" />
</ItemGroup>
</Project>
@@ -1,12 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
+1 -6
View File
@@ -1,12 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
@@ -15,8 +14,4 @@
</Compile>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" />
</ItemGroup>
</Project>
@@ -1,13 +0,0 @@
using System;
using Avalonia.Controls;
namespace Avalonia
{
public static class AvaloniaNativePlatformExtensions
{
public static T UseAvaloniaNative<T>(this T builder) where T : AppBuilderBase<T>, new()
{
throw new PlatformNotSupportedException();
}
}
}
@@ -14,12 +14,4 @@
<PackageReference Include="Avalonia.Skia" Aliases="AvaloniaSkia" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Common.CoreLib\Common.CoreLib.csproj" />
</ItemGroup>
</Project>
@@ -1,219 +0,0 @@
// https://github.com/AvaloniaUI/Avalonia/blob/0.10.17/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Interactivity;
using Avalonia.Platform;
using Avalonia.Threading;
namespace Avalonia.Controls.ApplicationLifetimes
{
sealed class ClassicDesktopStyleApplicationLifetime2 : IClassicDesktopStyleApplicationLifetime, IDisposable
{
private int _exitCode;
private CancellationTokenSource? _cts;
private bool _isShuttingDown;
private HashSet<Window> _windows = new();
private static ClassicDesktopStyleApplicationLifetime2? _activeLifetime;
static ClassicDesktopStyleApplicationLifetime2()
{
Window.WindowOpenedEvent.AddClassHandler(typeof(Window), OnWindowOpened);
Window.WindowClosedEvent.AddClassHandler(typeof(Window), WindowClosedEvent);
}
private static void WindowClosedEvent(object sender, RoutedEventArgs e)
{
_activeLifetime?._windows.Remove((Window)sender);
_activeLifetime?.HandleWindowClosed((Window)sender);
}
private static void OnWindowOpened(object sender, RoutedEventArgs e)
{
_activeLifetime?._windows.Add((Window)sender);
}
public ClassicDesktopStyleApplicationLifetime2()
{
if (_activeLifetime != null)
throw new InvalidOperationException(
"Can not have multiple active ClassicDesktopStyleApplicationLifetime instances and the previously created one was not disposed");
_activeLifetime = this;
}
/// <inheritdoc/>
public event EventHandler<ControlledApplicationLifetimeStartupEventArgs>? Startup;
/// <inheritdoc/>
public event EventHandler<ShutdownRequestedEventArgs>? ShutdownRequested;
/// <inheritdoc/>
public event EventHandler<ControlledApplicationLifetimeExitEventArgs>? Exit;
/// <summary>
/// Gets the arguments passed to the AppBuilder Start method.
/// </summary>
public string[]? Args { get; set; }
/// <inheritdoc/>
public ShutdownMode ShutdownMode { get; set; }
/// <inheritdoc/>
public Window? MainWindow { get; set; }
public IReadOnlyList<Window> Windows => _windows.ToList();
private void HandleWindowClosed(Window window)
{
if (window == null)
return;
if (_isShuttingDown)
return;
if (ShutdownMode == ShutdownMode.OnLastWindowClose && _windows.Count == 0)
TryShutdown();
else if (ShutdownMode == ShutdownMode.OnMainWindowClose && ReferenceEquals(window, MainWindow))
TryShutdown();
}
public void Shutdown(int exitCode = 0)
{
DoShutdown(new ShutdownRequestedEventArgs(), true, exitCode);
}
public bool TryShutdown(int exitCode = 0)
{
return DoShutdown(new ShutdownRequestedEventArgs(), false, exitCode);
}
public int Start(string[] args)
{
Startup?.Invoke(this, new ControlledApplicationLifetimeStartupEventArgs(args));
var options = AvaloniaLocator.Current.GetService<ClassicDesktopStyleApplicationLifetimeOptions>();
if (options != null && options.ProcessUrlActivationCommandLine && args.Length > 0)
{
if (Application.Current is IApplicationPlatformEvents events)
{
events.RaiseUrlsOpened(args);
}
}
var lifetimeEvents = AvaloniaLocator.Current.GetService<IPlatformLifetimeEventsImpl>();
if (lifetimeEvents != null)
lifetimeEvents.ShutdownRequested += OnShutdownRequested;
_cts = new CancellationTokenSource();
// Note due to a bug in the JIT we wrap this in a method, otherwise MainWindow
// gets stuffed into a local var and can not be GCed until after the program stops.
// this method never exits until program end.
ShowMainWindow();
Dispatcher.UIThread.MainLoop(_cts.Token);
Environment.ExitCode = _exitCode;
return _exitCode;
}
[MethodImpl(MethodImplOptions.NoInlining)]
private void ShowMainWindow()
{
MainWindow?.Show();
}
public void Dispose()
{
if (_activeLifetime == this)
_activeLifetime = null;
}
private bool DoShutdown(ShutdownRequestedEventArgs e, bool force = false, int exitCode = 0)
{
if (!force)
{
ShutdownRequested?.Invoke(this, e);
if (e.Cancel)
return false;
// https://appcenter.ms/orgs/BeyondDimension/apps/Steam/crashes/errors/3780037517u/overview
// ClassicDesktopStyleApplicationLifetime.DoShutdown (ShutdownRequestedEventArgs e, Boolean force, Int32 exitCode) /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs, line 147
// System.InvalidOperationException: Application is already shutting down.
// v2.8.2 | 73 users | 76 reports
// Exception Stack:
// System.InvalidOperationException: Application is already shutting down.
// at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.DoShutdown(ShutdownRequestedEventArgs e, Boolean force, Int32 exitCode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 147
// at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.OnShutdownRequested(Object sender, ShutdownRequestedEventArgs e) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 186
// at Avalonia.Win32.Win32Platform.WndProc(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Windows/Avalonia.Win32/Win32Platform.cs:line 283
if (_isShuttingDown)
// throw new InvalidOperationException("Application is already shutting down.");
return true;
}
_exitCode = exitCode;
_isShuttingDown = true;
try
{
// When an OS shutdown request is received, try to close all non-owned windows. Windows can cancel
// shutdown by setting e.Cancel = true in the Closing event. Owned windows will be shutdown by their
// owners.
foreach (var w in Windows)
{
if (w.Owner is null)
{
w.Close();
}
}
if (!force && Windows.Count > 0)
{
e.Cancel = true;
return false;
}
var args = new ControlledApplicationLifetimeExitEventArgs(exitCode);
Exit?.Invoke(this, args);
_exitCode = args.ApplicationExitCode;
}
finally
{
_cts?.Cancel();
_cts = null;
_isShuttingDown = false;
}
return true;
}
private void OnShutdownRequested(object sender, ShutdownRequestedEventArgs e) => DoShutdown(e);
}
}
namespace Avalonia
{
public static class ClassicDesktopStyleApplicationLifetimeExtensions
{
public static int StartWithClassicDesktopLifetime2<T>(
this T builder, string[] args, ShutdownMode shutdownMode = ShutdownMode.OnLastWindowClose)
where T : AppBuilderBase<T>, new()
{
var lifetime = new ClassicDesktopStyleApplicationLifetime2()
{
Args = args,
ShutdownMode = shutdownMode,
};
builder.SetupWithLifetime(lifetime);
return lifetime.Start(args);
}
}
}
@@ -1,187 +0,0 @@
extern alias AvaloniaSkia;
using System;
using System.IO;
using Avalonia.Platform;
using AvaloniaSkia::Avalonia.Skia.Helpers;
using Avalonia.Visuals.Media.Imaging;
using SkiaSharp;
using AvaloniaSkia::Avalonia.Skia;
using DrawingContextImpl = AvaloniaSkia::Avalonia.Skia.DrawingContextImpl;
using IDrawableBitmapImpl = AvaloniaSkia::Avalonia.Skia.IDrawableBitmapImpl;
// https://github.com/AvaloniaUI/Avalonia/blob/0.10.13/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
namespace Avalonia.Skia
{
/// <summary>
/// Immutable Skia bitmap.
/// </summary>
internal class ImmutableBitmap : IDrawableBitmapImpl
{
private readonly SKImage _image;
public ImmutableBitmap(SKImage image)
{
_image = image;
if (_image == null)
{
throw new ArgumentException("Unable to load bitmap from provided data");
}
PixelSize = new PixelSize(_image.Width, _image.Height);
// TODO: Skia doesn't have an API for DPI.
Dpi = new Vector(96, 96);
}
/// <summary>
/// Create immutable bitmap from given stream.
/// </summary>
/// <param name="stream">Stream containing encoded data.</param>
public ImmutableBitmap(Stream stream) : this(SkiaSharpHelpers.FromEncodedData(stream))
{
}
public ImmutableBitmap(ImmutableBitmap src, PixelSize destinationSize, BitmapInterpolationMode interpolationMode)
{
SKImageInfo info = new SKImageInfo(destinationSize.Width, destinationSize.Height, SKColorType.Bgra8888);
SKImage output = SKImage.Create(info);
src._image.ScalePixels(output.PeekPixels(), interpolationMode.ToSKFilterQuality());
_image = output;
PixelSize = new PixelSize(_image.Width, _image.Height);
// TODO: Skia doesn't have an API for DPI.
Dpi = new Vector(96, 96);
}
public ImmutableBitmap(Stream stream, int decodeSize, bool horizontal, BitmapInterpolationMode interpolationMode) : this(SkiaSharpHelpers.Create(stream), decodeSize, horizontal, interpolationMode)
{
}
public ImmutableBitmap(SKBitmap bmp, int decodeSize, bool horizontal, BitmapInterpolationMode interpolationMode)
{
var info = bmp.Info;
// now scale that to the size that we want
var realScale = horizontal ? ((double)info.Height / info.Width) : ((double)info.Width / info.Height);
SKImageInfo desired;
if (horizontal)
{
desired = new SKImageInfo(decodeSize, (int)(realScale * decodeSize));
}
else
{
desired = new SKImageInfo((int)(realScale * decodeSize), decodeSize);
}
if (bmp.Width != desired.Width || bmp.Height != desired.Height)
{
var scaledBmp = bmp.Resize(desired, interpolationMode.ToSKFilterQuality());
bmp.Dispose();
bmp = scaledBmp;
}
_image = SKImage.FromBitmap(bmp);
bmp.Dispose();
if (_image == null)
{
throw new ArgumentException("Unable to load bitmap from provided data");
}
PixelSize = new PixelSize(_image.Width, _image.Height);
// TODO: Skia doesn't have an API for DPI.
Dpi = new Vector(96, 96);
}
static SKBitmap Decode(SKCodec codec, int decodeSize, bool horizontal, bool leaveOpen)
{
try
{
var info = codec.Info;
// get the scale that is nearest to what we want (eg: jpg returned 512)
var supportedScale = codec.GetScaledDimensions(horizontal ? ((float)decodeSize / info.Width) : ((float)decodeSize / info.Height));
// decode the bitmap at the nearest size
var nearest = new SKImageInfo(supportedScale.Width, supportedScale.Height);
var bmp = SKBitmap.Decode(codec, nearest);
return bmp;
}
finally
{
if (!leaveOpen) codec.Dispose();
}
}
public ImmutableBitmap(SKCodec codec, int decodeSize, bool horizontal, BitmapInterpolationMode interpolationMode, bool leaveOpen = false)
: this(Decode(codec, decodeSize, horizontal, leaveOpen), decodeSize, horizontal, interpolationMode)
{
}
/// <summary>
/// Create immutable bitmap from given pixel data copy.
/// </summary>
/// <param name="size">Size of the bitmap.</param>
/// <param name="dpi">DPI of the bitmap.</param>
/// <param name="stride">Stride of data pixels.</param>
/// <param name="format">Format of data pixels.</param>
/// <param name="alphaFormat">Alpha format of data pixels.</param>
/// <param name="data">Data pixels.</param>
public ImmutableBitmap(PixelSize size, Vector dpi, int stride, PixelFormat format, AlphaFormat alphaFormat, IntPtr data)
{
var imageInfo = new SKImageInfo(size.Width, size.Height, format.ToSkColorType(), alphaFormat.ToSkAlphaType());
_image = SKImage.FromPixelCopy(imageInfo, data, stride);
if (_image == null)
{
throw new ArgumentException("Unable to create bitmap from provided data");
}
PixelSize = size;
Dpi = dpi;
}
public Vector Dpi { get; }
public PixelSize PixelSize { get; }
public int Version { get; } = 1;
/// <inheritdoc />
public void Dispose()
{
_image.Dispose();
}
/// <inheritdoc />
public void Save(string fileName)
{
ImageSavingHelper.SaveImage(_image, fileName);
}
/// <inheritdoc />
public void Save(Stream stream)
{
ImageSavingHelper.SaveImage(_image, stream);
}
/// <inheritdoc />
public void Draw(DrawingContextImpl context, SKRect sourceRect, SKRect destRect, SKPaint paint)
{
context.Canvas.DrawImage(_image, sourceRect, destRect, paint);
}
}
}
@@ -1,52 +0,0 @@
extern alias AvaloniaSkia;
using Avalonia.Platform;
using Avalonia.Visuals.Media.Imaging;
using System;
using System.IO;
using ISkiaGpu = AvaloniaSkia::Avalonia.Skia.ISkiaGpu;
using @this = AvaloniaSkia::Avalonia.Skia.PlatformRenderInterface;
// https://github.com/AvaloniaUI/Avalonia/blob/0.10.13/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
namespace Avalonia.Skia
{
sealed class PlatformRenderInterface : @this, IPlatformRenderInterface
{
public PlatformRenderInterface(ISkiaGpu? skiaGpu, long? maxResourceBytes = null) : base(skiaGpu, maxResourceBytes)
{
}
IBitmapImpl IPlatformRenderInterface.LoadBitmap(Stream stream)
{
return new ImmutableBitmap(stream);
}
IBitmapImpl IPlatformRenderInterface.LoadBitmap(PixelFormat format, AlphaFormat alphaFormat, IntPtr data, PixelSize size, Vector dpi, int stride)
{
return new ImmutableBitmap(size, dpi, stride, format, alphaFormat, data);
}
IBitmapImpl IPlatformRenderInterface.LoadBitmapToWidth(Stream stream, int width, BitmapInterpolationMode interpolationMode)
{
return new ImmutableBitmap(stream, width, true, interpolationMode);
}
IBitmapImpl IPlatformRenderInterface.LoadBitmapToHeight(Stream stream, int height, BitmapInterpolationMode interpolationMode)
{
return new ImmutableBitmap(stream, height, false, interpolationMode);
}
IBitmapImpl IPlatformRenderInterface.ResizeBitmap(IBitmapImpl bitmapImpl, PixelSize destinationSize, BitmapInterpolationMode interpolationMode)
{
if (bitmapImpl is ImmutableBitmap ibmp)
{
return new ImmutableBitmap(ibmp, destinationSize, interpolationMode);
}
else
{
throw new Exception("Invalid source bitmap type.");
}
}
}
}
@@ -9,7 +9,6 @@ namespace Avalonia.Skia
public sealed class SKTypefaceCollection
{
readonly @this @this;
internal SKTypefaceCollection(@this @this)
{
this.@this = @this;
@@ -1,22 +0,0 @@
extern alias AvaloniaSkia;
using Avalonia.Platform;
using SkiaOptions = AvaloniaSkia::Avalonia.SkiaOptions;
// https://github.com/AvaloniaUI/Avalonia/blob/0.10.13/src/Skia/Avalonia.Skia/SkiaPlatform.cs#L18-L27
namespace Avalonia.Skia
{
public static class SkiaPlatform2
{
public static readonly IPlatformRenderInterface PlatformRenderInterface = GetPlatformRenderInterface();
static IPlatformRenderInterface GetPlatformRenderInterface()
{
var options = AvaloniaLocator.Current.GetService<SkiaOptions>() ?? new();
var customGpu = options.CustomGpuFactory?.Invoke();
var renderInterface = new PlatformRenderInterface(customGpu, options.MaxGpuResourceSizeBytes);
return renderInterface;
}
}
}
@@ -1,134 +0,0 @@
extern alias AvaloniaSkia;
using System.IO;
using SkiaSharp;
using Avalonia.Media.Imaging;
using Avalonia.Utilities;
using Avalonia.Visuals.Media.Imaging;
namespace Avalonia.Skia
{
public static class SkiaSharpHelpers
{
static SKCodec CreateCore(IFileStreamWrapper fileStreamWrapper)
{
return SKCodec.Create(fileStreamWrapper.Name);
}
static SKCodec CreateCore(FileStream fileStream, bool disposeManagedStream = false)
{
try
{
var filename = fileStream.Name;
return SKCodec.Create(filename);
}
finally
{
if (disposeManagedStream) fileStream.Dispose();
}
}
static SKCodec CreateCore(Stream stream, bool disposeManagedStream = false)
{
using var skStream = new SKManagedStream(stream, disposeManagedStream);
return SKCodec.Create(skStream);
}
public static SKCodec Create(Stream stream)
{
if (stream is IFileStreamWrapper fileStreamWrapper)
{
return CreateCore(fileStreamWrapper);
}
else if (stream is FileStream fileStream)
{
return CreateCore(fileStream);
}
else
{
return CreateCore(stream);
}
}
public static SKImage FromEncodedDataCore(IFileStreamWrapper fileStreamWrapper)
{
return SKImage.FromEncodedData(fileStreamWrapper.Name);
}
public static SKImage FromEncodedDataCore(FileStream fileStream, bool disposeManagedStream = false)
{
try
{
var filename = fileStream.Name;
return SKImage.FromEncodedData(filename);
}
finally
{
if (disposeManagedStream) fileStream.Dispose();
}
}
public static SKImage FromEncodedDataCore(MemoryStream memoryStream, bool disposeManagedStream = false)
{
try
{
using var data = SKData.CreateCopy(memoryStream.ToArray());
return SKImage.FromEncodedData(data);
}
finally
{
if (disposeManagedStream) memoryStream.Dispose();
}
}
public static SKImage FromEncodedDataCore(Stream stream, bool disposeManagedStream = false)
{
using var skStream = new SKManagedStream(stream, disposeManagedStream);
using var data = SKData.Create(skStream);
if (data != null) return SKImage.FromEncodedData(data);
if (stream.CanSeek) stream.Position = 0;
using var ms = new MemoryStream();
stream.CopyTo(ms);
ms.Seek(0, SeekOrigin.Begin);
// https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/basics/bitmaps#loading-a-bitmap-from-the-web
return FromEncodedDataCore(ms, disposeManagedStream: true);
}
public static SKImage FromEncodedData(Stream stream)
{
if (stream is IFileStreamWrapper fileStreamWrapper)
{
return FromEncodedDataCore(fileStreamWrapper);
}
else if (stream is FileStream fileStream)
{
return FromEncodedDataCore(fileStream);
}
else if (stream is MemoryStream memoryStream)
{
try
{
return FromEncodedDataCore(memoryStream);
}
catch
{
}
}
return FromEncodedDataCore(stream);
}
static Bitmap GetBitmap(this ImmutableBitmap bitmap) => new(RefCountable.Create(bitmap));
public static Bitmap GetBitmap(SKImage image) => new ImmutableBitmap(image).GetBitmap();
public static Bitmap GetBitmap(SKBitmap bitmap)
{
var image = SKImage.FromBitmap(bitmap);
return GetBitmap(image);
}
public static Bitmap DecodeToWidth(SKBitmap bitmap, int width, BitmapInterpolationMode interpolationMode = BitmapInterpolationMode.HighQuality) => new ImmutableBitmap(bitmap, width, true, interpolationMode).GetBitmap();
}
}
@@ -1,12 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
@@ -1,12 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>netstandard2.0</TargetFramework>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
@@ -1,22 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<SignAssembly>true</SignAssembly>
<DelaySign>false</DelaySign>
<AssemblyOriginatorKeyFile>$(MSBuildProjectDirectory)\..\..\avalonia.snk</AssemblyOriginatorKeyFile>
<!--https://github.com/AvaloniaUI/Avalonia/blob/0.10.10/build/SharedVersion.props#L18-->
<IsTrimmable>true</IsTrimmable>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\AssemblyInfo.Version.Max.cs">
<LinkBase>Properties</LinkBase>
</Compile>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" />
</ItemGroup>
</Project>

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