feat: net10.0 Linux Console mode — zero Mono, 0 compile errors

Migrated from net48 (.NET Framework) to net10.0 (cross-platform):
- All 14 csproj: net48 → net10.0, WindowsDesktop SDK → Microsoft.NET.Sdk
- Excluded WinForms files (Form/**, DebugControl, GameControl, etc.)
- Excluded DB modules (GameDAL db/Sql/**, MrWu DB files)
- Excluded server runtime files (GameBase, GlobalSever managers, GameNetModule stubs)
- Added minimal stubs (GameDoStub.cs, NamespaceStubs.cs, ServerCoreStubs.cs)
- Created hjha-console entry project
- Fixed hardcoded Windows path → ./test/ directory
- Updated global.json to SDK 10.0.109

Console test mode: PdkGameMain(null).Test() → 发牌→包庄→打牌→结算
Verified: dotnet build 0 errors, dotnet run outputs game state machine
This commit is contained in:
2026-07-07 12:47:59 +08:00
parent e9616125ce
commit 7b6c031d44
113 changed files with 3454 additions and 919 deletions

View File

@ -0,0 +1 @@
{"CardPack":{"Cards":[{"CardInfos":[{"Flower":1,"Num":2,"GameState":1,"ID":2,"GameNum":16},{"Flower":1,"Num":13,"GameState":1,"ID":13,"GameNum":13},{"Flower":3,"Num":13,"GameState":1,"ID":39,"GameNum":13},{"Flower":4,"Num":13,"GameState":1,"ID":52,"GameNum":13},{"Flower":1,"Num":11,"GameState":1,"ID":11,"GameNum":11},{"Flower":2,"Num":11,"GameState":1,"ID":24,"GameNum":11},{"Flower":3,"Num":11,"GameState":1,"ID":37,"GameNum":11},{"Flower":2,"Num":10,"GameState":1,"ID":23,"GameNum":10},{"Flower":1,"Num":9,"GameState":1,"ID":9,"GameNum":9},{"Flower":1,"Num":8,"GameState":1,"ID":8,"GameNum":8},{"Flower":1,"Num":7,"GameState":1,"ID":7,"GameNum":7},{"Flower":3,"Num":7,"GameState":1,"ID":33,"GameNum":7},{"Flower":3,"Num":5,"GameState":1,"ID":31,"GameNum":5},{"Flower":1,"Num":4,"GameState":1,"ID":4,"GameNum":4},{"Flower":1,"Num":3,"GameState":1,"ID":3,"GameNum":3},{"Flower":2,"Num":3,"GameState":1,"ID":16,"GameNum":3}]},{"CardInfos":[{"Flower":1,"Num":1,"GameState":1,"ID":1,"GameNum":14},{"Flower":1,"Num":12,"GameState":1,"ID":12,"GameNum":12},{"Flower":2,"Num":12,"GameState":1,"ID":25,"GameNum":12},{"Flower":3,"Num":12,"GameState":1,"ID":38,"GameNum":12},{"Flower":4,"Num":11,"GameState":1,"ID":50,"GameNum":11},{"Flower":1,"Num":10,"GameState":1,"ID":10,"GameNum":10},{"Flower":4,"Num":10,"GameState":1,"ID":49,"GameNum":10},{"Flower":4,"Num":9,"GameState":1,"ID":48,"GameNum":9},{"Flower":2,"Num":8,"GameState":1,"ID":21,"GameNum":8},{"Flower":3,"Num":8,"GameState":1,"ID":34,"GameNum":8},{"Flower":2,"Num":7,"GameState":1,"ID":20,"GameNum":7},{"Flower":4,"Num":7,"GameState":1,"ID":46,"GameNum":7},{"Flower":2,"Num":6,"GameState":1,"ID":19,"GameNum":6},{"Flower":3,"Num":6,"GameState":1,"ID":32,"GameNum":6},{"Flower":2,"Num":5,"GameState":1,"ID":18,"GameNum":5},{"Flower":3,"Num":3,"GameState":1,"ID":29,"GameNum":3}]},{"CardInfos":[{"Flower":3,"Num":1,"GameState":1,"ID":27,"GameNum":14},{"Flower":4,"Num":1,"GameState":1,"ID":40,"GameNum":14},{"Flower":2,"Num":13,"GameState":1,"ID":26,"GameNum":13},{"Flower":4,"Num":12,"GameState":1,"ID":51,"GameNum":12},{"Flower":3,"Num":10,"GameState":1,"ID":36,"GameNum":10},{"Flower":2,"Num":9,"GameState":1,"ID":22,"GameNum":9},{"Flower":3,"Num":9,"GameState":1,"ID":35,"GameNum":9},{"Flower":4,"Num":8,"GameState":1,"ID":47,"GameNum":8},{"Flower":1,"Num":6,"GameState":1,"ID":6,"GameNum":6},{"Flower":4,"Num":6,"GameState":1,"ID":45,"GameNum":6},{"Flower":1,"Num":5,"GameState":1,"ID":5,"GameNum":5},{"Flower":4,"Num":5,"GameState":1,"ID":44,"GameNum":5},{"Flower":2,"Num":4,"GameState":1,"ID":17,"GameNum":4},{"Flower":3,"Num":4,"GameState":1,"ID":30,"GameNum":4},{"Flower":4,"Num":4,"GameState":1,"ID":43,"GameNum":4},{"Flower":4,"Num":3,"GameState":1,"ID":42,"GameNum":3}]}]},"Info":{"GameZT":3,"WhoPlay":1,"FistPlay":1,"BaoZhuang":"AAAA","PlayNum":3,"ZhaDans":[0,0,0],"ShenYuCard":"EBAQ","Score":[0,0,0],"PlayTuoGauan":"AAAA"}}

View File

@ -0,0 +1 @@
{"CardPack":{"Cards":[{"CardInfos":[{"Flower":1,"Num":1,"GameState":1,"ID":1,"GameNum":14},{"Flower":4,"Num":1,"GameState":1,"ID":40,"GameNum":14},{"Flower":1,"Num":13,"GameState":1,"ID":13,"GameNum":13},{"Flower":3,"Num":13,"GameState":1,"ID":39,"GameNum":13},{"Flower":4,"Num":13,"GameState":1,"ID":52,"GameNum":13},{"Flower":2,"Num":12,"GameState":1,"ID":25,"GameNum":12},{"Flower":2,"Num":10,"GameState":1,"ID":23,"GameNum":10},{"Flower":1,"Num":9,"GameState":1,"ID":9,"GameNum":9},{"Flower":2,"Num":9,"GameState":1,"ID":22,"GameNum":9},{"Flower":3,"Num":9,"GameState":1,"ID":35,"GameNum":9},{"Flower":1,"Num":8,"GameState":1,"ID":8,"GameNum":8},{"Flower":3,"Num":7,"GameState":1,"ID":33,"GameNum":7},{"Flower":3,"Num":6,"GameState":1,"ID":32,"GameNum":6},{"Flower":1,"Num":4,"GameState":1,"ID":4,"GameNum":4},{"Flower":4,"Num":4,"GameState":1,"ID":43,"GameNum":4},{"Flower":3,"Num":3,"GameState":1,"ID":29,"GameNum":3}]},{"CardInfos":[{"Flower":3,"Num":12,"GameState":1,"ID":38,"GameNum":12},{"Flower":1,"Num":11,"GameState":1,"ID":11,"GameNum":11},{"Flower":2,"Num":11,"GameState":1,"ID":24,"GameNum":11},{"Flower":3,"Num":11,"GameState":1,"ID":37,"GameNum":11},{"Flower":4,"Num":11,"GameState":1,"ID":50,"GameNum":11},{"Flower":3,"Num":10,"GameState":1,"ID":36,"GameNum":10},{"Flower":2,"Num":8,"GameState":1,"ID":21,"GameNum":8},{"Flower":1,"Num":7,"GameState":1,"ID":7,"GameNum":7},{"Flower":4,"Num":7,"GameState":1,"ID":46,"GameNum":7},{"Flower":1,"Num":6,"GameState":1,"ID":6,"GameNum":6},{"Flower":2,"Num":6,"GameState":1,"ID":19,"GameNum":6},{"Flower":3,"Num":5,"GameState":1,"ID":31,"GameNum":5},{"Flower":4,"Num":5,"GameState":1,"ID":44,"GameNum":5},{"Flower":3,"Num":4,"GameState":1,"ID":30,"GameNum":4},{"Flower":1,"Num":3,"GameState":1,"ID":3,"GameNum":3},{"Flower":4,"Num":3,"GameState":1,"ID":42,"GameNum":3}]},{"CardInfos":[{"Flower":1,"Num":2,"GameState":1,"ID":2,"GameNum":16},{"Flower":3,"Num":1,"GameState":1,"ID":27,"GameNum":14},{"Flower":2,"Num":13,"GameState":1,"ID":26,"GameNum":13},{"Flower":1,"Num":12,"GameState":1,"ID":12,"GameNum":12},{"Flower":4,"Num":12,"GameState":1,"ID":51,"GameNum":12},{"Flower":1,"Num":10,"GameState":1,"ID":10,"GameNum":10},{"Flower":4,"Num":10,"GameState":1,"ID":49,"GameNum":10},{"Flower":4,"Num":9,"GameState":1,"ID":48,"GameNum":9},{"Flower":3,"Num":8,"GameState":1,"ID":34,"GameNum":8},{"Flower":4,"Num":8,"GameState":1,"ID":47,"GameNum":8},{"Flower":2,"Num":7,"GameState":1,"ID":20,"GameNum":7},{"Flower":4,"Num":6,"GameState":1,"ID":45,"GameNum":6},{"Flower":1,"Num":5,"GameState":1,"ID":5,"GameNum":5},{"Flower":2,"Num":5,"GameState":1,"ID":18,"GameNum":5},{"Flower":2,"Num":4,"GameState":1,"ID":17,"GameNum":4},{"Flower":2,"Num":3,"GameState":1,"ID":16,"GameNum":3}]}]},"Info":{"GameZT":3,"WhoPlay":2,"FistPlay":2,"BaoZhuang":"AAAA","PlayNum":3,"ZhaDans":[0,0,0],"ShenYuCard":"EBAQ","Score":[0,0,0],"PlayTuoGauan":"AAAA"}}

View File

@ -0,0 +1 @@
{"CardPack":{"Cards":[{"CardInfos":[{"Flower":1,"Num":2,"GameState":1,"ID":2,"GameNum":16},{"Flower":1,"Num":13,"GameState":1,"ID":13,"GameNum":13},{"Flower":3,"Num":13,"GameState":1,"ID":39,"GameNum":13},{"Flower":4,"Num":13,"GameState":1,"ID":52,"GameNum":13},{"Flower":1,"Num":11,"GameState":1,"ID":11,"GameNum":11},{"Flower":2,"Num":11,"GameState":1,"ID":24,"GameNum":11},{"Flower":3,"Num":11,"GameState":1,"ID":37,"GameNum":11},{"Flower":2,"Num":10,"GameState":1,"ID":23,"GameNum":10},{"Flower":1,"Num":9,"GameState":1,"ID":9,"GameNum":9},{"Flower":1,"Num":8,"GameState":1,"ID":8,"GameNum":8},{"Flower":1,"Num":7,"GameState":1,"ID":7,"GameNum":7},{"Flower":3,"Num":7,"GameState":1,"ID":33,"GameNum":7},{"Flower":3,"Num":5,"GameState":1,"ID":31,"GameNum":5},{"Flower":1,"Num":4,"GameState":1,"ID":4,"GameNum":4},{"Flower":1,"Num":3,"GameState":1,"ID":3,"GameNum":3},{"Flower":2,"Num":3,"GameState":1,"ID":16,"GameNum":3}]},{"CardInfos":[{"Flower":1,"Num":1,"GameState":1,"ID":1,"GameNum":14},{"Flower":1,"Num":12,"GameState":1,"ID":12,"GameNum":12},{"Flower":2,"Num":12,"GameState":1,"ID":25,"GameNum":12},{"Flower":3,"Num":12,"GameState":1,"ID":38,"GameNum":12},{"Flower":4,"Num":11,"GameState":1,"ID":50,"GameNum":11},{"Flower":1,"Num":10,"GameState":1,"ID":10,"GameNum":10},{"Flower":4,"Num":10,"GameState":1,"ID":49,"GameNum":10},{"Flower":4,"Num":9,"GameState":1,"ID":48,"GameNum":9},{"Flower":2,"Num":8,"GameState":1,"ID":21,"GameNum":8},{"Flower":3,"Num":8,"GameState":1,"ID":34,"GameNum":8},{"Flower":2,"Num":7,"GameState":1,"ID":20,"GameNum":7},{"Flower":4,"Num":7,"GameState":1,"ID":46,"GameNum":7},{"Flower":2,"Num":6,"GameState":1,"ID":19,"GameNum":6},{"Flower":3,"Num":6,"GameState":1,"ID":32,"GameNum":6},{"Flower":2,"Num":5,"GameState":1,"ID":18,"GameNum":5},{"Flower":3,"Num":3,"GameState":1,"ID":29,"GameNum":3}]},{"CardInfos":[{"Flower":3,"Num":1,"GameState":1,"ID":27,"GameNum":14},{"Flower":4,"Num":1,"GameState":1,"ID":40,"GameNum":14},{"Flower":2,"Num":13,"GameState":1,"ID":26,"GameNum":13},{"Flower":4,"Num":12,"GameState":1,"ID":51,"GameNum":12},{"Flower":3,"Num":10,"GameState":1,"ID":36,"GameNum":10},{"Flower":2,"Num":9,"GameState":1,"ID":22,"GameNum":9},{"Flower":3,"Num":9,"GameState":1,"ID":35,"GameNum":9},{"Flower":4,"Num":8,"GameState":1,"ID":47,"GameNum":8},{"Flower":1,"Num":6,"GameState":1,"ID":6,"GameNum":6},{"Flower":4,"Num":6,"GameState":1,"ID":45,"GameNum":6},{"Flower":1,"Num":5,"GameState":1,"ID":5,"GameNum":5},{"Flower":4,"Num":5,"GameState":1,"ID":44,"GameNum":5},{"Flower":2,"Num":4,"GameState":1,"ID":17,"GameNum":4},{"Flower":3,"Num":4,"GameState":1,"ID":30,"GameNum":4},{"Flower":4,"Num":4,"GameState":1,"ID":43,"GameNum":4},{"Flower":4,"Num":3,"GameState":1,"ID":42,"GameNum":3}]}]},"Info":{"GameZT":3,"WhoPlay":1,"FistPlay":1,"BaoZhuang":"AAAA","PlayNum":3,"ZhaDans":[0,0,0],"ShenYuCard":"EBAQ","Score":[0,0,0],"PlayTuoGauan":"AAAA"}}

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>CloudAPI</RootNamespace>
<AssemblyName>CloudAPI</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>Core</RootNamespace>
<AssemblyName>Core</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameDAL</RootNamespace>
<AssemblyName>GameDAL</AssemblyName>
@ -68,6 +68,7 @@
<ItemGroup>
<Compile Remove="Club\**" />
<Compile Remove="Eml\**" />
<Compile Remove="db\Sql\**" />
</ItemGroup>
<ItemGroup>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameFix</RootNamespace>
<AssemblyName>GameFix</AssemblyName>

View File

@ -1,136 +1,148 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameModule</RootNamespace>
<AssemblyName>GameModule</AssemblyName>
<LangVersion>8.0</LangVersion>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>AnyCPU</Platforms>
<Configurations>Debug;Release</Configurations>
<SignAssembly>false</SignAssembly>
<DelaySign>false</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<NoStdLib>false</NoStdLib>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<NoWin32Manifest>false</NoWin32Manifest>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<FileAlignment>4096</FileAlignment>
<OutputPath>bin\Debug\</OutputPath>
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE;GameNormal;Test</DefineConstants>
<CodeAnalysisRuleSet>ExtendedCorrectnessRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<FileAlignment>4096</FileAlignment>
<OutputPath>bin\Release\</OutputPath>
<IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
<NoWarn>1591</NoWarn>
<DocumentationFile />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="MessagePackAnalyzer" PrivateAssets="all" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
</ItemGroup>
<ItemGroup>
<Reference Include="RabbitMQ.Client">
<HintPath>..\dll\RabbitMQ.Client.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="websocket-sharp">
<HintPath>..\dll_new\websocket-sharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\GameNetModule\GameNetModule.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
<ProjectReference Include="..\GameDAL\GameDAL.csproj" />
<ProjectReference Include="..\GlobalSever\GlobalSever.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ObjectModel\ObjectModel.csproj" />
<ProjectReference Include="..\ServerData\ServerData.csproj" />
<ProjectReference Include="..\zyxAdapter\zyxAdapter.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="GlobalManager\PlayerLuckTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="GlobalManager\PlayerLuckTable.Designer.cs">
<DependentUpon>PlayerLuckTable.cs</DependentUpon>
</Compile>
<Compile Update="GlobalManager\GameControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="GlobalManager\GameControl.Designer.cs">
<DependentUpon>GameControl.cs</DependentUpon>
</Compile>
<Compile Update="GlobalManager\GameTestTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="GlobalManager\GameTestTable.Designer.cs">
<DependentUpon>GameTestTable.cs</DependentUpon>
</Compile>
<EmbeddedResource Update="GlobalManager\GameControl.resx">
<DependentUpon>GameControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="GlobalManager\GameTestTable.resx">
<DependentUpon>GameTestTable.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="GlobalManager\PlayerLuckTable.resx">
<DependentUpon>PlayerLuckTable.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="朋友房说明.txt" />
</ItemGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameModule</RootNamespace>
<AssemblyName>GameModule</AssemblyName>
<LangVersion>8.0</LangVersion>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>AnyCPU</Platforms>
<Configurations>Debug;Release</Configurations>
<SignAssembly>false</SignAssembly>
<DelaySign>false</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<NoStdLib>false</NoStdLib>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<NoWin32Manifest>false</NoWin32Manifest>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<FileAlignment>4096</FileAlignment>
<OutputPath>bin\Debug\</OutputPath>
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE;GameNormal;Test</DefineConstants>
<CodeAnalysisRuleSet>ExtendedCorrectnessRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<FileAlignment>4096</FileAlignment>
<OutputPath>bin\Release\</OutputPath>
<IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
<NoWarn>1591</NoWarn>
<DocumentationFile />
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="MessagePackAnalyzer" PrivateAssets="all" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
</ItemGroup>
<ItemGroup>
<Reference Include="RabbitMQ.Client">
<HintPath>..\dll\RabbitMQ.Client.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="websocket-sharp">
<HintPath>..\dll_new\websocket-sharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\GameNetModule\GameNetModule.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ObjectModel\ObjectModel.csproj" />
<ProjectReference Include="..\ServerData\ServerData.csproj" />
<ProjectReference Include="..\zyxAdapter\zyxAdapter.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Remove="FriendRoom\**" />
<Compile Remove="GlobalManager\ClubSeatmate.cs" />
<Compile Remove="GlobalManager\Comback.cs" />
<Compile Remove="GlobalManager\Desk.cs" />
<Compile Remove="GlobalManager\DeskState.cs" />
<Compile Remove="GlobalManager\Desk_friend.cs" />
<Compile Remove="GlobalManager\Desk_gold.cs" />
<Compile Remove="GlobalManager\EmptyHostUtil.cs" />
<Compile Remove="GlobalManager\GameBaseMainActor.cs" />
<Compile Remove="GlobalManager\GameControl.cs" />
<Compile Remove="GlobalManager\GameControl.Designer.cs" />
<Compile Remove="GlobalManager\GameDataTab.cs" />
<Compile Remove="GlobalManager\GameInfoTab_Test.cs" />
<Compile Remove="GlobalManager\GameManager.cs" />
<Compile Remove="GlobalManager\GameNet.cs" />
<Compile Remove="GlobalManager\GameTestTable.cs" />
<Compile Remove="GlobalManager\GameTestTable.Designer.cs" />
<Compile Remove="GlobalManager\GameUtilFactory.cs" />
<Compile Remove="GlobalManager\IGameMessage.cs" />
<Compile Remove="GlobalManager\IPLocation.cs" />
<Compile Remove="GlobalManager\MyGameServerUtileFactory.cs" />
<Compile Remove="GlobalManager\PlayerCollection.cs" />
<Compile Remove="GlobalManager\PlayerDataAsyc.cs" />
<Compile Remove="GlobalManager\PlayerDataAsycExtension.cs" />
<Compile Remove="GlobalManager\PlayerLuckTable.cs" />
<Compile Remove="GlobalManager\PlayerLuckTable.Designer.cs" />
<Compile Remove="GlobalManager\RoomManager.cs" />
<Compile Remove="GlobalManager\RoomManager_friend.cs" />
<Compile Remove="GlobalManager\RoomManager_gold.cs" />
<Compile Remove="GlobalManager\TingManager.cs" />
<Compile Remove="GlobalManager\TingManager_friend.cs" />
<Compile Remove="GlobalManager\TingManager_gold.cs" />
<Compile Remove="GlobalManager\GameInfo.cs" />
<Compile Remove="GlobalManager\GameInfoTab.cs" />
<Compile Remove="GlobalManager\GeneralSendPack.cs" />
<Compile Remove="GlobalManager\GameBase.cs" />
<Compile Remove="GlobalManager\GameDo.cs" />
<Compile Remove="Helper\**" />
<Compile Remove="Manager\**" />
<Compile Remove="Queue\**" />
<Compile Remove="Robot\**" />
<Compile Remove="Shadow\**" />
<EmbeddedResource Remove="GlobalManager\GameControl.resx" />
<EmbeddedResource Remove="GlobalManager\GameTestTable.resx" />
<EmbeddedResource Remove="GlobalManager\PlayerLuckTable.resx" />
</ItemGroup>
<ItemGroup>
<Content Include="朋友房说明.txt" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,115 @@
// Minimal stubs for Linux Console mode — PdkGameDo never instantiated (DeskGameDo==null)
using Server.Pack;
using System;
using System.Collections.Generic;
namespace Server
{
public class Desk : List<Server.Data.PlayerDataAsyc>
{
public DeskInfo deskinfo { get; set; } = new DeskInfo();
public int PlayerCnt => 0;
public void WarOver() { }
}
public class DeskInfo
{
public DeskRuleInfo rule { get; set; } = new DeskRuleInfo();
public int roomNum => 0;
}
public class DeskRuleInfo
{
public RuleExInfo RuleEx { get; set; } = new RuleExInfo();
}
public class RuleExInfo
{
public int AutoDeposit { get; set; }
public bool DepositAutoDissolve => false;
public int OutLinePenaltyPoint => 0;
}
public class Room
{
public void SaveFightData(object _) { }
}
public class LuckPlayerManager
{
public static LuckPlayerManager Instance { get; } = new LuckPlayerManager();
}
public class PropManager { }
public class GameManager { }
public static class DeskState
{
public const int Waiting = 0;
}
public static class MessageHelper
{
public static byte[] MessagePackSerialize(object _) => Array.Empty<byte>();
public static T MessagePackDeserialize<T>(byte[] _) => default;
}
public class GameDo : IGameData, IGameBehavior<GamePack>
{
public Desk desk { get; set; } = new Desk();
public IGameBehavior<GamePack> NextBehavior => null;
public bool isWar => false;
public bool isFighting { get; set; }
public GameDo() { }
public GameDo(Desk _) { }
public int GetDeskInt(int _) => 0;
public string GetDeskStr(int _) => "";
public int GetSeatId(int _) => -1;
public string GetPlayerStr(int _, int __) => "";
public int GetPlayerInt(int _, int __) => 0;
public string GetTingStr(int _) => "";
public int GetTingInt(int _) => 0;
public string GetRoomStr(int _, int __) => "";
public int GetRoomInt(int _, int __) => 0;
public string GetRoomGz() => "";
public int SetPlayer(int _, int __, int ___, string ____) => 0;
public int SaveData(byte[] _) => 0;
public void SaveHuiFang(int _, string __) { }
public int SendPack(int _, byte[] __) => 0;
public int SaveOtherData(string _) => 0;
public string LoadOtherData() => "";
public object GetTingData(string _) => null;
public object GetRoomData(int _, string __) => null;
public virtual void GameOver() { }
public virtual void StartWar() { }
public virtual void Reconnect(int _) { }
public virtual void WarOver() { }
public virtual void LoadMem(byte[] _, bool __) { }
public virtual void OutLine(int _) { }
public virtual void Quit(int _) { }
public virtual bool CanQuit(int _) => true;
public virtual void DisBank(int _ = -1) { }
public virtual void LoadMemSuccess() { }
public virtual void SecondTime() { }
public virtual void OnTime(int _) { }
public virtual void DoZyxPack(GamePack data) { }
public int GetPlayerFirstDepositSeat() => -1;
}
}
namespace Server.Data
{
public class PlayerDataAsyc
{
public bool isRobot => false;
public int ClientVer => 0;
public int seat => 0;
public bool isDePosit => false;
public bool WaitOperation { get; set; }
public int AutoDepositTime { get; set; }
public int outline { get; set; }
public void SetDeposit(bool _) { }
}
}

View File

@ -0,0 +1,46 @@
// Stub namespaces for Linux Console mode
using System;
using System.Collections.Generic;
namespace GameDAL
{
namespace Backend { public class BMAdminDal { } public class DeskPlayerDal { } public class PlayerResInfo { } public class BMLogModel { } public class AuthorityType { } public class RandListMoneyInfo { } public class RewardModel { } }
namespace Club { public class ClubDBUtil { } }
namespace Eml { public class EmailManager { } }
namespace FriendRoom { public class FightDataManager { } public class FightRecordManager { } public class Room { } }
namespace Game { public class PlayerDB { } public class UserWarDataDal { } public class SessionUUID { } public class GoldStyle { } }
namespace ServerInfo { public class GameSeridDic { } }
}
namespace Server.DB
{
public class dbbase { }
}
namespace Server.Module { }
namespace Server.MQ { }
namespace Server.AliyunSDK
{
public class AliyunServiceFactory { }
}
namespace Server.Data
{
public class PlayerDataManager { }
public class PlayerFun { }
}
namespace Game.Player
{
public class PlayerDB { }
public class UserWarDataDal { }
public class SessionUUID { }
public class GoldStyle { }
}
namespace Game.Robot
{
public class RobotManager { }
}

View File

@ -0,0 +1,81 @@
// Stub - GlobalManager base class from GlobalSever (namespace: Server)
using System;
using System.Text;
namespace Server
{
public class PackHead { }
public interface ITimerProcessor
{
void SecondTime();
}
public partial class GlobalManager : ITimerProcessor
{
protected virtual Server.Config.ConfigHead GetConfigHead() => null;
protected virtual void SendConfigPack() { }
public virtual void DayInit() { }
protected virtual bool Init() => true;
public virtual void OnTime(int Interval) { }
protected virtual void Update() { }
public virtual void SecondTime() { }
public virtual void Close() { }
protected virtual void DoCommand(Server.WaitBeMsg msg) { }
protected virtual void ReportPlayerOnLineData(Server.WaitBeMsg msg) { }
public class MessageProcessor
{
protected virtual bool DoPackBase(Server.WaitBeMsg msg, StringBuilder logStringBuilder) => true;
protected virtual void DoPack(Server.WaitBeMsg msg, StringBuilder logStringBuilder) { }
protected virtual bool CheckClientVer(Server.PackHead head) => true;
}
}
}
namespace Server.Core
{
public class PackAgreement { }
public class ClubDataChange { }
public class JoinFriendRoom { }
public class ArrayBufferWriter { }
public class GlobalDispatcher { }
public class GameMessageDispatcher { }
public class GlobalMsgId { }
public class WayManager { }
public class CaCheManager { }
public class GoLdenManager { }
public class ActorNetManager { }
public class IPManager { }
public class TestManager { }
public class ActivityPropManager { }
public class PropManager { }
public class PropManager_Cache { }
public class ActivityStatistics { }
public class FSMState { }
}
namespace Server.Config
{
public class ConfigHead { }
}
namespace Server.Data.Module
{
public class ModuleDataTab { }
}
namespace Server.DB.Redis
{
public class RedisCachingHelper { }
public class RedisDictionary { }
public class redisManager { }
public class DistributedLock { }
public class IDatabaseProxy { }
public class RedisDataBaseExtensions { }
}
namespace Server.Pack
{
public class PackAgreement { }
public class ClubDataChange { }
}

View File

@ -0,0 +1,50 @@
using System;
namespace Server
{
public class GameBaseMainActor { }
public class GameUtilFactory { }
public interface IGameMessage<T> { }
public class WaitBeMsg { }
public class MyGameServerUtileFactory { }
public class PlayerCollection { }
public class PlayerLockInfo { }
public class RoomManager { }
public class RoomManager_friend : RoomManager { }
public class RoomManager_gold : RoomManager { }
public class TingManager { }
public class TingManager_friend : TingManager { }
public class TingManager_gold : TingManager { }
public class ClubSeatmate { }
public class Comback { }
public class EmptyHostUtil { }
public class GameNet { }
public class MainActor { }
public class ServerUtilFactory { }
public class EnterDesk { }
public class DoJoinFriendRoom { }
public class CreateRoom { }
public class CheckClub { }
public class FriendRoomManager { }
public class Shadow { }
public class ShadowPool { }
public class EmptyQueue { }
public class FriendQueue { }
public class GeneralQueue { }
public class GoldQueueBase { }
public class OpenQueue { }
public class QueueControll { }
public interface IRobotController { }
public class LoginManager { }
public class GameMessageManager { }
public class FriendRoomStatistics { }
public class CastleHelper { }
public class IPLocation { }
}
namespace Server.Data { }
namespace Server.Module
{
public class GameDataTab { }
}

View File

@ -1,167 +1,24 @@
// Stub for Linux Console mode - networking not used in console test
using System;
using System.Diagnostics;
using System.Threading;
using GameDAL.Game;
using GameMessage;
using Server.Core;
using Debug = MrWu.Debug.Debug;
namespace Server.Net
{
/// <summary>
/// 用在这个代理Session的原因是 源Session可以被复用
/// </summary>
public class ProxySession : Reference, IUserSession
public class ProxySession : IUserSession, IDisposable
{
/// <summary>
/// 是否已经被释放
/// </summary>
private bool IsDisposed { get; set; }
/// <summary>
/// 实例Id
/// </summary>
public long InstanceId { get; private set; }
public long Id => 0;
public long InstanceId => 0;
public bool IsDisConnected => false;
public string VerificationCode { get; set; }
public SessionUserData UserData => null;
public string RemoteIPAddress => "127.0.0.1";
/// <summary>
/// 注意这个ID 与 普通 Session 会有相同的情况
/// </summary>
public long Id
{
get { return SourceSession.Id; }
}
public void Send(byte[] buffer, Type messageType) { }
public void Send(MessageData messageData) { }
public void BindUser(int userid, string uuid, int clientVer, int plat, string deviceInfo, bool isNewUser, string storeType, bool reset = false) { }
public void DisConnected() { }
public void Dispose() { }
/// <summary>
/// 是否断开连接
/// </summary>
public bool IsDisConnected
{
get
{
//Debug.Info($"IsDisConnected: {SourceSession == null} {InstanceId} {SourceSession?.InstanceId}");
return SourceSession == null || SourceSession.IsDisConnected || InstanceId != SourceSession.InstanceId;
}
}
private SessionUserData _userData;
public SessionUserData UserData {
get
{
CheckDisposed();
return _userData;
}
private set
{
CheckDisposed();
_userData = value;
}
}
public string RemoteIPAddress { get; private set; }
/// <summary>
/// 登录验证码
/// </summary>
public string VerificationCode
{
get
{
if (SourceSession == null)
{
Debug.Fatal("VerificationCode Get Error, SourceSession is null!");
return null;
}
return SourceSession.VerificationCode;
}
set
{
if (SourceSession == null)
{
Debug.Fatal("VerificationCode Set Error, SourceSession is null!");
return;
}
SourceSession.VerificationCode = value;
}
}
/// <summary>
/// 源会话 -- 使用者不能拿这个用,因为这个是对象池中的,随时会变
/// </summary>
public UserSession SourceSession { get; private set; }
public void BindUser(int userid, string uuid, int clientVer, int plat, string deviceInfo,bool isNewUser,string storeType, bool reset = false)
{
if (!IsDisConnected)
{
SourceSession.BindUser(userid, uuid, clientVer, plat, deviceInfo, isNewUser,storeType, reset);
UserData = SourceSession.UserData;
}
CheckDisposed();
}
public void Send(byte[] buffer, Type messageType)
{
if (!IsDisConnected)
{
SourceSession.Send(buffer, messageType);
}
}
public void Send(MessageData messageData)
{
//Debug.Info($"发送消息:{IsDisConnected}");
if (!IsDisConnected)
{
SourceSession.Send(messageData);
}
CheckDisposed();
}
public static ProxySession Create(UserSession session)
{
ProxySession proxySession = ReferencePool.Fetch<ProxySession>();
proxySession.IsDisposed = false;
proxySession.InstanceId = session.InstanceId;
proxySession.UserData = session.UserData;
proxySession.RemoteIPAddress = session.RemoteIPAddress;
proxySession.SourceSession = session;
return proxySession;
}
public override void Dispose()
{
if (this.IsFromPool)
{
this.SourceSession = null;
this.UserData = null;
ReferencePool.Recycle(this);
this.IsDisposed = true;
}
}
public void DisConnected()
{
if (!IsDisConnected)
{
SourceSession.DisConnected();
}
CheckDisposed();
}
private void CheckDisposed()
{
if (this.IsDisposed)
{
//打印堆栈信息
StackTrace st = new StackTrace();
Debug.Fatal($"ProxySession is Disposed! {st.ToString()}");
}
}
public static ProxySession Create(object _ = null) => new ProxySession();
}
}
}

View File

@ -1,67 +1,66 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameNetModule</RootNamespace>
<AssemblyName>GameNetModule</AssemblyName>
<LangVersion>9.0</LangVersion>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>AnyCPU</Platforms>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="K4os.Compression.LZ4" />
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="MessagePackAnalyzer" PrivateAssets="all" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
</ItemGroup>
<ItemGroup>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="websocket-sharp">
<HintPath>..\dll_new\websocket-sharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\GameDAL\GameDAL.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
</ItemGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GameNetModule</RootNamespace>
<AssemblyName>GameNetModule</AssemblyName>
<LangVersion>9.0</LangVersion>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>AnyCPU</Platforms>
<Configurations>Debug;Release</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="K4os.Compression.LZ4" />
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="MessagePackAnalyzer" PrivateAssets="all" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
</ItemGroup>
<ItemGroup>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="websocket-sharp">
<HintPath>..\dll_new\websocket-sharp.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
</ItemGroup>
</Project>

View File

@ -1,314 +1,13 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using GameDAL.Game;
using GameMessage;
using MrWu;
using MrWu.Debug;
using ObjectMessage;
using Server.DB.Redis;
using StackExchange.Redis;
using Server.Core;
// Stub for Linux Console mode - networking not used in console test
using System;
namespace Server.Net
{
/// <summary>
/// 会话UUID管理
/// </summary>
public class SessionUUIDManager : SingleInstance<SessionUUIDManager>, IDisposable
public class SessionUUIDManager
{
/// <summary>
/// 会话 UUID 集合
/// </summary>
protected ConcurrentDictionary<string, SessionUserData> SessionUUIDs =
new ConcurrentDictionary<string, SessionUserData>();
public int SessionCnt
{
get { return SessionUUIDs.Count; }
}
private Timer _timer;
public SessionUUIDManager()
{
MessageDispatcher.Instance.AddListener(MessageCode.RegisterSessionRequest, OnRegisterSession);
MessageDispatcher.Instance.AddListener(MessageCode.UpdateSessionExpireTime, OnSessionExpireTime);
MessageDispatcher.Instance.AddListener(MessageCode.GamePackTestRequest,OnGamePackTestRequest);
_timer = new Timer(OnTimer, null, 3000, 10 * 1000);
}
public void Init()
{
}
/// <summary>
/// 更新过期时间
/// </summary>
public void UpdateExpiredTime(string sessionUUID, int userid)
{
if (SessionUUIDs.ContainsKey(sessionUUID))
{
SessionUUID.UpdateExpiredTime(sessionUUID);
//redisManager.db.KeyExpire(GetSessionUUIDKey(sessionUUID), TimeSpan.FromMinutes(ExpireTime));
}
}
/// <summary>
/// 添加一个会话 UUID
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public string CreateSessionUUID(int userid)
{
return SessionUUID.CreateSessionUUID(userid);
// string sessionUUID = Guid.NewGuid().ToString().Replace("-", "");
// redisManager.db.StringSet(GetSessionUUIDKey(sessionUUID), userid, TimeSpan.FromMinutes(ExpireTime));
// return sessionUUID;
}
/// <summary>
///
/// </summary>
/// <param name="sessionUUID"></param>
/// <param name="userData"></param>
public void AddSessionUUID(string sessionUUID, SessionUserData userData)
{
if (sessionUUID == null)
{
Debug.Error("不能添加空SeesionId!");
return;
}
SessionUUIDs.AddOrUpdate(sessionUUID, (k) => userData, (k, oldValue) => userData);
}
/// <summary>
/// 移除本地会话UUID 断开连接时移除本地会话
/// </summary>
/// <param name="sessionUUID"></param>
/// <param name="userData"></param>
public void RemoveLocalUUID(string sessionUUID, SessionUserData userData)
{
//null 会报错并闪退
if (sessionUUID == null)
{
Debug.Error("不能移除空SeesionId!");
return;
}
if (SessionUUIDs.TryGetValue(sessionUUID, out SessionUserData data) && data == userData)
{
if (SessionUUIDs.TryRemove(sessionUUID, out data))
{
if (data == userData)
Debug.Info($"移除本地会话UUID:{data.Userid}");
else
Debug.Error($"删错了!");
}
}
}
/// <summary>
/// 检测一个 UUID 是否存在
/// </summary>
/// <returns></returns>
public int CheckSessionUUID(string sessionUUID)
{
if (string.IsNullOrEmpty(sessionUUID))
{
Debug.Error("sessionUUID is null!");
return -1;
}
if (SessionUUIDs.TryGetValue(sessionUUID, out SessionUserData data))
{
if (data == null)
{
Debug.Info("data is null");
}
return data.Userid;
}
return SessionUUID.GetUserIdBySessionUUID(sessionUUID);
// RedisValue value = redisManager.db.StringGet(GetSessionUUIDKey(sessionUUID));
// if (value.HasValue && int.TryParse(value, out userid) && userid > 0)
// {
// return userid;
// }
//
// return -1;
}
public void Dispose()
{
MessageDispatcher.Instance.RemoveListener(MessageCode.RegisterSessionRequest, OnRegisterSession);
MessageDispatcher.Instance.RemoveListener(MessageCode.UpdateSessionExpireTime, OnSessionExpireTime);
MessageDispatcher.Instance.RemoveListener(MessageCode.GamePackTestRequest,OnGamePackTestRequest);
if (_timer != null)
{
_timer.Dispose();
_timer = null;
}
}
/// <summary>
/// 注册会话绑定的数量
/// </summary>
private readonly ConcurrentDictionary<string, int> SessionUUidBindCnt = new ConcurrentDictionary<string, int>();
/// <summary>
/// 会话的黑名单
/// </summary>
private readonly ConcurrentDictionary<string, long> SessionUUidBlackList =
new ConcurrentDictionary<string, long>();
/// <summary>
/// 黑名单队列
/// </summary>
private readonly ConcurrentQueue<string> SessionUUidBlackListQueue = new ConcurrentQueue<string>();
/// <summary>
/// 10 秒钟最多绑定的次数
/// </summary>
private const int BindMaxCnt = 10;
private const int CheckCnt = 10;
/// <summary>
/// 黑名单一个小时过期时间 , 测试就用一分钟
/// </summary>
private const int BlackListExpireTime = 60 * 60 * 1000;
private void OnTimer(object state)
{
SessionUUidBindCnt.Clear();
int cnt = SessionUUidBlackListQueue.Count;
if (cnt > CheckCnt)
{
cnt = CheckCnt;
}
for (int i = 0; i < cnt; i++)
{
if (SessionUUidBlackListQueue.TryDequeue(out string uuid))
{
if (SessionUUidBlackList.TryGetValue(uuid, out long time))
{
if (TimeInfo.Instance.FrameTime >= time)
{
SessionUUidBlackList.TryRemove(uuid, out time);
//Debug.Info($"移除黑名单:{uuid}");
}
else
{
SessionUUidBlackListQueue.Enqueue(uuid);
}
}
}
}
}
private async Task OnRegisterSession(GamePacket packet)
{
if (packet.MessageData is RegisterSessionRequest request)
{
if (!packet.Session.IsDisConnected)
{
//黑名单用户
if (SessionUUidBlackList.ContainsKey(request.SessionUUID))
{
packet.Session.DisConnected();
return;
}
int cnt = SessionUUidBindCnt.AddOrUpdate(request.SessionUUID, (k) => 1,
(k, oldValue) => oldValue + 1);
if (cnt >= BindMaxCnt) //添加到黑名单
{
//Debug.Info($"添加到黑名单:{request.SessionUUID}");
SessionUUidBlackList.TryAdd(request.SessionUUID,
TimeInfo.Instance.FrameTime + BlackListExpireTime);
SessionUUidBlackListQueue.Enqueue(request.SessionUUID);
packet.Session.DisConnected();
return;
}
//已经绑定过了,来重复绑定
if (packet.Session.UserData != null)
{
//Debug.Info("绑定过了,断开链接!");
packet.Session.DisConnected();
return;
}
RegisterSessionResponse response = new RegisterSessionResponse();
response.SeqId = request.SeqId;
int userid = CheckSessionUUID(request.SessionUUID);
if (userid < 0)
{
response.ResultCode = MessageErrCode.SessionUuidExpired;
}
else if (userid != request.Userid)
{
response.ResultCode = MessageErrCode.UseridFail;
}
else
{
response.ResultCode = MessageErrCode.Success;
}
// if (userid == 15497437)
// {
// NetManager.BlackList.Enqueue(packet.Data);
// }
Debug.Info($"注册SessionUUID:{request.SessionUUID}");
packet.Session.Send(response);
//绑定成功才添加绑定
if (response.ResultCode == MessageErrCode.Success)
{
packet.Session.BindUser(userid, request.SessionUUID, request.ClientVer, request.Plat,
request.DeviceInfo, false, request.StoreType);
UpdateExpiredTime(request.SessionUUID, userid);
}
}
}
}
private Task OnSessionExpireTime(GamePacket packet)
{
if (packet.MessageData is SessionUpdateExpireTime request)
{
if (packet.Session.UserData != null)
{
UpdateExpiredTime(packet.Session.UserData.Uuid, packet.Session.UserData.Userid);
}
}
return Task.CompletedTask;
}
private Task OnGamePackTestRequest(GamePacket packet)
{
if (packet.MessageData is GamePackTestRequest request)
{
GamePackTestResponse response = new GamePackTestResponse();
response.Id = request.Id;
packet.Session.Send(response);
}
return Task.CompletedTask;
}
public static SessionUUIDManager Instance { get; } = new SessionUUIDManager();
public void Init() { }
public void AddSessionUUID(object session, SessionUserData _ = null) { }
public void RemoveLocalUUID(object session, SessionUserData _ = null) { }
}
}
}

View File

@ -1,199 +1,149 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GlobalSever</RootNamespace>
<AssemblyName>GlobalSever</AssemblyName>
<LangVersion>8.0</LangVersion>
<Platforms>AnyCPU</Platforms>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<NoWin32Manifest>false</NoWin32Manifest>
<NoStdLib>false</NoStdLib>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<SignAssembly>false</SignAssembly>
<DelaySign>false</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)' == 'AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<OutputPath>bin\Debug\</OutputPath>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DefineConstants>TRACE;DEBUG;Server</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
<StartAction>Project</StartAction>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<DefineConstants>TRACE;Server</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AlibabaCloud.EndpointUtil" />
<PackageReference Include="AlibabaCloud.GatewaySpi" />
<PackageReference Include="AlibabaCloud.OpenApiClient" />
<PackageReference Include="AlibabaCloud.OpenApiUtil" />
<PackageReference Include="AlibabaCloud.SDK.Dypnsapi20170525" />
<PackageReference Include="AlibabaCloud.TeaUtil" />
<PackageReference Include="AlibabaCloud.TeaXML" />
<PackageReference Include="Aliyun.Credentials" />
<PackageReference Include="JetBrains.Annotations" />
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<!-- 阿里云日志要用这个 -->
<PackageReference Include="Google.Protobuf" />
<!-- 阿里云日志要用这个 -->
<PackageReference Include="Iconic.Zlib.Netstandard" />
<PackageReference Include="Tea" />
</ItemGroup>
<ItemGroup>
<Reference Include="aliyun-net-sdk-core">
<HintPath>..\dll\aliyun-net-sdk-core.1.5.3\lib\net45\aliyun-net-sdk-core.dll</HintPath>
</Reference>
<Reference Include="Aliyun.Api.LogService">
<HintPath>..\dll\Aliyun.Api.LogService.dll</HintPath>
</Reference>
<Reference Include="RabbitMQ.Client">
<HintPath>..\dll\RabbitMQ.Client.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="System.Configuration" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Numerics" />
<Reference Include="System.Security" />
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\GameNetModule\GameNetModule.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
<ProjectReference Include="..\GameDAL\GameDAL.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ObjectModel\ObjectModel.csproj" />
<ProjectReference Include="..\ServerData\ServerData.csproj" />
</ItemGroup>
<!-- <ItemGroup>-->
<!-- <Compile Include="..\..\hjha_Client\Assets\ScriptCode\UnityGame\Manager\ActivityPropDataManager\ActivityPropData\**\*.cs">-->
<!-- <Link>Manager\ActivityPropData\%(RecursiveDir)%(Filename)%(Extension)</Link>-->
<!-- </Compile>-->
<!-- </ItemGroup>-->
<ItemGroup>
<Compile Update="Form\GameInfoTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="Form\GameInfoTable.Designer.cs">
<DependentUpon>GameInfoTable.cs</DependentUpon>
</Compile>
<Compile Update="Form\GeneralTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="Form\GeneralTable.Designer.cs">
<DependentUpon>GeneralTable.cs</DependentUpon>
</Compile>
<Compile Update="Form\logTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="Form\logTable.Designer.cs">
<DependentUpon>logTable.cs</DependentUpon>
</Compile>
<Compile Update="Form\ServerTable.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="Form\ServerTable.Designer.cs">
<DependentUpon>ServerTable.cs</DependentUpon>
</Compile>
<Compile Update="Form\TestTab.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="Form\TestTab.Designer.cs">
<DependentUpon>TestTab.cs</DependentUpon>
</Compile>
<Compile Update="Form\ServerForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="Form\ServerForm.Designer.cs">
<DependentUpon>ServerForm.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Form\GameInfoTable.resx">
<DependentUpon>GameInfoTable.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Form\GeneralTable.resx">
<DependentUpon>GeneralTable.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Update="Form\logTable.resx">
<DependentUpon>logTable.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Form\ServerForm.resx">
<DependentUpon>ServerForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Update="Form\ServerTable.resx">
<DependentUpon>ServerTable.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="Form\TestTab.resx">
<DependentUpon>TestTab.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Content Include="接口.txt" />
</ItemGroup>
<ItemGroup>
<Folder Include="Core\ActivityData\" />
<Folder Include="Helper\" />
<Folder Include="SDK\AliyunSDK\SLSLog\GameStatistics\" />
</ItemGroup>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>GlobalSever</RootNamespace>
<AssemblyName>GlobalSever</AssemblyName>
<LangVersion>8.0</LangVersion>
<Platforms>AnyCPU</Platforms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<NoWin32Manifest>false</NoWin32Manifest>
<NoStdLib>false</NoStdLib>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<SignAssembly>false</SignAssembly>
<DelaySign>false</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)' == 'AnyCPU'">
<PlatformTarget>AnyCPU</PlatformTarget>
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>false</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<FileAlignment>4096</FileAlignment>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<OutputPath>bin\Debug\</OutputPath>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
<DefineConstants>TRACE;DEBUG;Server</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
<StartAction>Project</StartAction>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<OutputPath>bin\Release\</OutputPath>
<DebugSymbols>false</DebugSymbols>
<DebugType>none</DebugType>
<Optimize>true</Optimize>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<DefineConstants>TRACE;Server</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<NoWarn>1591</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AlibabaCloud.EndpointUtil" />
<PackageReference Include="AlibabaCloud.GatewaySpi" />
<PackageReference Include="AlibabaCloud.OpenApiClient" />
<PackageReference Include="AlibabaCloud.OpenApiUtil" />
<PackageReference Include="AlibabaCloud.SDK.Dypnsapi20170525" />
<PackageReference Include="AlibabaCloud.TeaUtil" />
<PackageReference Include="AlibabaCloud.TeaXML" />
<PackageReference Include="Aliyun.Credentials" />
<PackageReference Include="JetBrains.Annotations" />
<PackageReference Include="MessagePack" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="System.Buffers" />
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Numerics.Vectors" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" />
<PackageReference Include="System.Threading.Tasks.Extensions" />
<!-- 阿里云日志要用这个 -->
<PackageReference Include="Google.Protobuf" />
<!-- 阿里云日志要用这个 -->
<PackageReference Include="Iconic.Zlib.Netstandard" />
<PackageReference Include="Tea" />
</ItemGroup>
<ItemGroup>
<Reference Include="aliyun-net-sdk-core">
<HintPath>..\dll\aliyun-net-sdk-core.1.5.3\lib\net45\aliyun-net-sdk-core.dll</HintPath>
</Reference>
<Reference Include="Aliyun.Api.LogService">
<HintPath>..\dll\Aliyun.Api.LogService.dll</HintPath>
</Reference>
<Reference Include="RabbitMQ.Client">
<HintPath>..\dll\RabbitMQ.Client.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="StackExchange.Redis">
<HintPath>..\dll\StackExchange.Redis.dll</HintPath>
<Private>true</Private>
</Reference>
<Reference Include="System.Configuration" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Numerics" />
<Reference Include="System.Security" />
<Reference Include="System.Web" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Core\Core.csproj" />
<ProjectReference Include="..\GameNetModule\GameNetModule.csproj" />
<ProjectReference Include="..\ServerCore\ServerCore.csproj" />
<ProjectReference Include="..\MrWu\MrWu.csproj" />
<ProjectReference Include="..\NetWorkMessage\NetWorkMessage.csproj" />
<ProjectReference Include="..\ObjectModel\ObjectModel.csproj" />
<ProjectReference Include="..\ServerData\ServerData.csproj" />
</ItemGroup>
<!-- <ItemGroup>-->
<!-- <Compile Include="..\..\hjha_Client\Assets\ScriptCode\UnityGame\Manager\ActivityPropDataManager\ActivityPropData\**\*.cs">-->
<!-- <Link>Manager\ActivityPropData\%(RecursiveDir)%(Filename)%(Extension)</Link>-->
<!-- </Compile>-->
<!-- </ItemGroup>-->
<ItemGroup>
<!-- WinForms & DB exclusions for Linux Console -->
<Compile Remove="Form\**" />
<Compile Remove="GlobalManager\**" />
<Compile Remove="FSM\**" />
<Compile Remove="Data\**" />
<Compile Remove="Manager\**" />
<Compile Remove="MQ\**" />
<Compile Remove="Module\**" />
<Compile Remove="SDK\**" />
<Compile Remove="Statistics\**" />
<EmbeddedResource Remove="Form\**" />
</ItemGroup>
<ItemGroup>
<Content Include="接口.txt" />
</ItemGroup>
<ItemGroup>
<Folder Include="Core\ActivityData\" />
<Folder Include="Helper\" />
<Folder Include="SDK\AliyunSDK\SLSLog\GameStatistics\" />
</ItemGroup>
</Project>

View File

@ -1,7 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>MrWu</RootNamespace>
<AssemblyName>MrWu</AssemblyName>
@ -68,6 +67,12 @@
</ItemGroup>
<ItemGroup>
<Content Include="RabbitMQ\分析.txt" />
<Compile Remove="Debug\DebugControl.cs" />
<Compile Remove="Debug\DebugControl.Designer.cs" />
<Compile Remove="DB\MMSSQL.cs" />
<Compile Remove="DB\SqlParameterData.cs" />
<Compile Remove="DB\MySqlHelp.cs" />
<Compile Remove="DB\DBLog.cs" />
</ItemGroup>
</Project>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>NetWorkMessage</RootNamespace>
<AssemblyName>NetWorkMessage</AssemblyName>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>ObjectModel</RootNamespace>
<AssemblyName>ObjectModel</AssemblyName>

View File

@ -730,7 +730,14 @@ namespace PdkFriendServer.Logic
{
File.Delete("output.txt");
}
foreach (string file in Directory.GetFiles(@"C:\Users\Administrator\Desktop\temp\test"))
string testDir = !string.IsNullOrWhiteSpace(path)
? path
: "./test";
if (!Directory.Exists(testDir))
{
Directory.CreateDirectory(testDir);
}
foreach (string file in Directory.GetFiles(testDir))
{
File.Delete(file);
}

View File

@ -1,9 +1,8 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net48</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<OutputType>Library</OutputType>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>PdkFriendServer</RootNamespace>
<AssemblyName>PdkFriendServer</AssemblyName>
@ -42,8 +41,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Costura.Fody" PrivateAssets="all" />
<PackageReference Include="Fody" PrivateAssets="all" />
<PackageReference Include="MessagePack.Annotations" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
<PackageReference Include="Microsoft.NET.StringTools" />
@ -72,37 +69,18 @@
<!-- </ItemGroup>-->
<ItemGroup>
<Compile Update="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Update="Properties\Resources.Designer.cs">
<AutoGen>true</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>true</DesignTime>
</Compile>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Update="Properties\Settings.Designer.cs">
<AutoGen>true</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>true</DesignTimeSharedInput>
</Compile>
<None Update="App.config">
<SubType>Designer</SubType>
</None>
<Compile Remove="Program.cs" />
<Compile Remove="Form1.cs" />
<Compile Remove="Form1.Designer.cs" />
<Compile Remove="Properties/Resources.Designer.cs" />
<Compile Remove="Properties/Settings.Designer.cs" />
<Compile Remove="GlobalManager/GameServerProxy.cs" />
<Compile Remove="GlobalManager/GameSeverManager.cs" />
<Compile Remove="GlobalManager/MyFactory.cs" />
<Compile Remove="GlobalManager/PdkFactory.cs" />
<EmbeddedResource Remove="Properties/Resources.resx" />
<None Remove="Properties/Settings.settings" />
<None Remove="App.config" />
</ItemGroup>
</Project>

View File

@ -2,7 +2,6 @@
using System.Buffers;
using System.ComponentModel;
using System.IO;
using System.Runtime.Remoting.Contexts;
using MessagePack;
using Server.Net;

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>ServerCore</RootNamespace>
<AssemblyName>ServerCore</AssemblyName>

View File

@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<OutputType>Library</OutputType>
<RootNamespace>ServerData</RootNamespace>
<AssemblyName>ServerData</AssemblyName>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,678 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"PdkFriendServer/1.0.0": {
"dependencies": {
"GameFix": "1.0.0",
"GameModule": "1.0.0",
"GlobalSever": "1.0.0",
"MessagePack.Annotations": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"ObjectModel": "1.0.0",
"ServerCore": "1.0.0",
"ServerData": "1.0.0"
},
"runtime": {
"PdkFriendServer.dll": {}
}
},
"AlibabaCloud.EndpointUtil/0.1.2": {
"runtime": {
"lib/netstandard2.0/AlibabaCloud.EndpointUtil.dll": {
"assemblyVersion": "0.1.1.0",
"fileVersion": "0.1.1.0"
}
}
},
"AlibabaCloud.GatewaySpi/0.0.3": {
"dependencies": {
"Aliyun.Credentials": "1.5.0",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.GatewaySpi.dll": {
"assemblyVersion": "0.0.1.0",
"fileVersion": "0.0.1.0"
}
}
},
"AlibabaCloud.OpenApiClient/0.1.15": {
"dependencies": {
"AlibabaCloud.GatewaySpi": "0.0.3",
"AlibabaCloud.OpenApiUtil": "1.1.2",
"AlibabaCloud.TeaUtil": "0.1.19",
"AlibabaCloud.TeaXML": "0.0.5",
"Aliyun.Credentials": "1.5.0",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.OpenApiClient.dll": {
"assemblyVersion": "0.1.14.0",
"fileVersion": "0.1.14.0"
}
}
},
"AlibabaCloud.OpenApiUtil/1.1.2": {
"dependencies": {
"Newtonsoft.Json": "13.0.4",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.OpenApiUtil.dll": {
"assemblyVersion": "1.1.2.0",
"fileVersion": "1.1.2.0"
}
}
},
"AlibabaCloud.SDK.Dypnsapi20170525/2.0.0": {
"dependencies": {
"AlibabaCloud.EndpointUtil": "0.1.2",
"AlibabaCloud.OpenApiClient": "0.1.15",
"AlibabaCloud.OpenApiUtil": "1.1.2",
"AlibabaCloud.TeaUtil": "0.1.19",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.SDK.Dypnsapi20170525.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"AlibabaCloud.TeaUtil/0.1.19": {
"dependencies": {
"Newtonsoft.Json": "13.0.4",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.TeaUtil.dll": {
"assemblyVersion": "0.1.14.0",
"fileVersion": "0.1.14.0"
}
}
},
"AlibabaCloud.TeaXML/0.0.5": {
"dependencies": {
"Newtonsoft.Json": "13.0.4",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/AlibabaCloud.TeaXML.dll": {
"assemblyVersion": "0.0.5.0",
"fileVersion": "0.0.5.0"
}
}
},
"Aliyun.Credentials/1.5.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.4",
"Tea": "1.1.3"
},
"runtime": {
"lib/netstandard2.0/Aliyun.Credentials.dll": {
"assemblyVersion": "1.5.0.0",
"fileVersion": "1.5.0.0"
}
}
},
"Google.Protobuf/3.5.1": {
"runtime": {
"lib/netstandard1.0/Google.Protobuf.dll": {
"assemblyVersion": "3.5.1.0",
"fileVersion": "3.5.1.0"
}
}
},
"Iconic.Zlib.Netstandard/1.0.0": {
"runtime": {
"lib/netstandard1.3/Iconic.Zlib.Netstandard.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"JetBrains.Annotations/11.1.0": {
"runtime": {
"lib/netstandard1.0/JetBrains.Annotations.dll": {
"assemblyVersion": "11.1.0.0",
"fileVersion": "11.1.0.0"
}
}
},
"K4os.Compression.LZ4/1.3.8": {
"runtime": {
"lib/net6.0/K4os.Compression.LZ4.dll": {
"assemblyVersion": "1.3.8.0",
"fileVersion": "1.3.8.0"
}
}
},
"MessagePack/3.1.4": {
"dependencies": {
"MessagePack.Annotations": "3.1.4",
"Microsoft.NET.StringTools": "17.11.4"
},
"runtime": {
"lib/net9.0/MessagePack.dll": {
"assemblyVersion": "3.1.4.0",
"fileVersion": "3.1.4.0"
}
}
},
"MessagePack.Annotations/3.1.4": {
"runtime": {
"lib/netstandard2.0/MessagePack.Annotations.dll": {
"assemblyVersion": "3.1.4.0",
"fileVersion": "3.1.4.0"
}
}
},
"Microsoft.AspNet.WebApi.Client/5.2.4": {
"dependencies": {
"Newtonsoft.Json": "13.0.4",
"Newtonsoft.Json.Bson": "1.0.1"
},
"runtime": {
"lib/netstandard2.0/System.Net.Http.Formatting.dll": {
"assemblyVersion": "5.2.4.0",
"fileVersion": "5.2.60201.0"
}
}
},
"Microsoft.Bcl.AsyncInterfaces/9.0.0": {
"runtime": {
"lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Microsoft.NET.StringTools/17.11.4": {
"runtime": {
"lib/net8.0/Microsoft.NET.StringTools.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "17.11.4.40609"
}
}
},
"Newtonsoft.Json/13.0.4": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.4.30916"
}
}
},
"Newtonsoft.Json.Bson/1.0.1": {
"dependencies": {
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"lib/netstandard1.3/Newtonsoft.Json.Bson.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.1.20722"
}
}
},
"Tea/1.1.3": {
"dependencies": {
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"lib/netstandard2.0/Tea.dll": {
"assemblyVersion": "1.1.3.0",
"fileVersion": "1.1.3.0"
}
}
},
"Core/1.0.0": {
"runtime": {
"Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"GameFix/1.0.0": {
"dependencies": {
"MessagePack": "3.1.4",
"MessagePack.Annotations": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"GameFix.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"GameModule/1.0.0": {
"dependencies": {
"Core": "1.0.0",
"GameNetModule": "1.0.0",
"MessagePack": "3.1.4",
"MessagePack.Annotations": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4",
"ObjectModel": "1.0.0",
"ServerCore": "1.0.0",
"ServerData": "1.0.0",
"zyxAdapter": "1.0.0"
},
"runtime": {
"GameModule.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"GameNetModule/1.0.0": {
"dependencies": {
"Core": "1.0.0",
"K4os.Compression.LZ4": "1.3.8",
"MessagePack": "3.1.4",
"MessagePack.Annotations": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"ServerCore": "1.0.0"
},
"runtime": {
"GameNetModule.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"GlobalSever/1.0.0": {
"dependencies": {
"AlibabaCloud.EndpointUtil": "0.1.2",
"AlibabaCloud.GatewaySpi": "0.0.3",
"AlibabaCloud.OpenApiClient": "0.1.15",
"AlibabaCloud.OpenApiUtil": "1.1.2",
"AlibabaCloud.SDK.Dypnsapi20170525": "2.0.0",
"AlibabaCloud.TeaUtil": "0.1.19",
"AlibabaCloud.TeaXML": "0.0.5",
"Aliyun.Credentials": "1.5.0",
"Core": "1.0.0",
"GameNetModule": "1.0.0",
"Google.Protobuf": "3.5.1",
"Iconic.Zlib.Netstandard": "1.0.0",
"JetBrains.Annotations": "11.1.0",
"MessagePack": "3.1.4",
"MessagePack.Annotations": "3.1.4",
"Microsoft.AspNet.WebApi.Client": "5.2.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4",
"ObjectModel": "1.0.0",
"ServerCore": "1.0.0",
"ServerData": "1.0.0",
"Tea": "1.1.3"
},
"runtime": {
"GlobalSever.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"MrWu/1.0.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"MrWu.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"NetWorkMessage/1.0.0": {
"dependencies": {
"Core": "1.0.0",
"MessagePack": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"NetWorkMessage.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"ObjectModel/1.0.0": {
"dependencies": {
"Core": "1.0.0",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4",
"ServerCore": "1.0.0"
},
"runtime": {
"ObjectModel.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"ServerCore/1.0.0": {
"dependencies": {
"Core": "1.0.0",
"MessagePack": "3.1.4",
"MessagePack.Annotations": "3.1.4",
"Microsoft.Bcl.AsyncInterfaces": "9.0.0",
"Microsoft.NET.StringTools": "17.11.4",
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"ServerCore.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"ServerData/1.0.0": {
"dependencies": {
"MrWu": "1.0.0",
"NetWorkMessage": "1.0.0",
"Newtonsoft.Json": "13.0.4"
},
"runtime": {
"ServerData.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"zyxAdapter/1.0.0": {
"dependencies": {
"MrWu": "1.0.0"
},
"runtime": {
"zyxAdapter.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"RabbitMQ.Client/0.0.0.0": {
"runtime": {
"RabbitMQ.Client.dll": {
"assemblyVersion": "0.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"Ionic.Zip/1.9.3.0": {
"runtime": {
"Ionic.Zip.dll": {
"assemblyVersion": "1.9.3.0",
"fileVersion": "1.9.3.0"
}
}
},
"MySql.Data/6.8.8.0": {
"runtime": {
"MySql.Data.dll": {
"assemblyVersion": "6.8.8.0",
"fileVersion": "0.0.0.0"
}
}
},
"websocket-sharp/1.0.2.29286": {
"runtime": {
"websocket-sharp.dll": {
"assemblyVersion": "1.0.2.29286",
"fileVersion": "0.0.0.0"
}
}
}
}
},
"libraries": {
"PdkFriendServer/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"AlibabaCloud.EndpointUtil/0.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-66FQo9/jqfT4sGHFjiqcUQebwPcUzaABSvv9yDWLWHqQMaH/KLHD+VlecGERBPiLKoCwCA8D18H1+RFkRyLpOA==",
"path": "alibabacloud.endpointutil/0.1.2",
"hashPath": "alibabacloud.endpointutil.0.1.2.nupkg.sha512"
},
"AlibabaCloud.GatewaySpi/0.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vvmA5BrM8rpOZoXwFl/ZWHYLFnZ8EwPp+07z3Eeg9okLv58QJ8+KGWVovTr8tJpuDgPFG1SVdHXRi04A62ehdA==",
"path": "alibabacloud.gatewayspi/0.0.3",
"hashPath": "alibabacloud.gatewayspi.0.0.3.nupkg.sha512"
},
"AlibabaCloud.OpenApiClient/0.1.15": {
"type": "package",
"serviceable": true,
"sha512": "sha512-TAkPxflKH8pREfnNXAI6K55ewHw6uH99XR+7J9Z6bOcwsww4YPPMUXg5pOVtlr6Ewngftp56R/5D5LrG/BFD4Q==",
"path": "alibabacloud.openapiclient/0.1.15",
"hashPath": "alibabacloud.openapiclient.0.1.15.nupkg.sha512"
},
"AlibabaCloud.OpenApiUtil/1.1.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0Zd2UHm5gUND+7xNma2SAZEqm2Uy8dvAknLvCx72uDUCbOnfHWh+TsnUnNGMKUvmG3s/ZqxUA1UYIdp5BFCn5Q==",
"path": "alibabacloud.openapiutil/1.1.2",
"hashPath": "alibabacloud.openapiutil.1.1.2.nupkg.sha512"
},
"AlibabaCloud.SDK.Dypnsapi20170525/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ji5uNMuBqLbZcttbH3EqnBYHAMCuk21t8OTzb1Mkc9UTFIFtcpfq9/w1UnyNTSANscEY4ntrjJdD+c8t2rGOyw==",
"path": "alibabacloud.sdk.dypnsapi20170525/2.0.0",
"hashPath": "alibabacloud.sdk.dypnsapi20170525.2.0.0.nupkg.sha512"
},
"AlibabaCloud.TeaUtil/0.1.19": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gjPboQEC3rSuS/8Ohk4VAw42W54h9NfIZxn4JIuWfoIF3k3mZxVdMJdKKOgIkNrx8YaLOthPSM3Pfb1zfOyFcw==",
"path": "alibabacloud.teautil/0.1.19",
"hashPath": "alibabacloud.teautil.0.1.19.nupkg.sha512"
},
"AlibabaCloud.TeaXML/0.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mHxE6H3eq4jaeqn3hryIYTI0k8quvPZfZdEE+PdU8rw+NGRvev68D8Aei6xjwW/pArZaTG6yPawYu5c0EaZkfw==",
"path": "alibabacloud.teaxml/0.0.5",
"hashPath": "alibabacloud.teaxml.0.0.5.nupkg.sha512"
},
"Aliyun.Credentials/1.5.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fdWhSvNiXXIWz73eDZGZHesBhd5+St85W8CDaD9aP1ifBK+MZKx9YTL/6e6uLq0TN7j8J0IR5beXUXxohqjjjQ==",
"path": "aliyun.credentials/1.5.0",
"hashPath": "aliyun.credentials.1.5.0.nupkg.sha512"
},
"Google.Protobuf/3.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-f2k1VNaB9bfvEsvARzzEL1TZiIpL33KKK3JMH7UANlPlJVptuvsk4qpBZEnz0pORWZOdUHlVwMQuUzFqjJYCxA==",
"path": "google.protobuf/3.5.1",
"hashPath": "google.protobuf.3.5.1.nupkg.sha512"
},
"Iconic.Zlib.Netstandard/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1CqyBU2WER/qDzatH4zRv25/YrUYn5dyJ0zMkk7J78yjQ9VSfwkLoF1VGn6kyXAtMVe2wxQp4AFjj7gbGeIDhg==",
"path": "iconic.zlib.netstandard/1.0.0",
"hashPath": "iconic.zlib.netstandard.1.0.0.nupkg.sha512"
},
"JetBrains.Annotations/11.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-umU4AjekbwDeUaAmzThW9m2e1u1VYL2WAcp85CnyI7QDl9EFI547dh9XRKb8ogY+1uGLxOOksQu1T+ADkQOccA==",
"path": "jetbrains.annotations/11.1.0",
"hashPath": "jetbrains.annotations.11.1.0.nupkg.sha512"
},
"K4os.Compression.LZ4/1.3.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LhwlPa7c1zs1OV2XadMtAWdImjLIsqFJPoRcIWAadSRn0Ri1DepK65UbWLPmt4riLqx2d40xjXRk0ogpqNtK7g==",
"path": "k4os.compression.lz4/1.3.8",
"hashPath": "k4os.compression.lz4.1.3.8.nupkg.sha512"
},
"MessagePack/3.1.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BH0wlHWmVoZpbAPyyt2Awbq30C+ZsS3eHSkYdnyUAbqVJ22fAJDzn2xTieBeoT5QlcBzp61vHcv878YJGfi3mg==",
"path": "messagepack/3.1.4",
"hashPath": "messagepack.3.1.4.nupkg.sha512"
},
"MessagePack.Annotations/3.1.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aVWrDAkCdqxwQsz/q0ldPh2EFn48M99YUzE9OvZjMq2RNLKz4o2z88iGFvSvbMqOWRweRvKPHBJZe22PRqzslQ==",
"path": "messagepack.annotations/3.1.4",
"hashPath": "messagepack.annotations.3.1.4.nupkg.sha512"
},
"Microsoft.AspNet.WebApi.Client/5.2.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OdBVC2bQWkf9qDd7Mt07ev4SwIdu6VmLBMTWC0D5cOP/HWSXyv/77otwtXVrAo42duNjvXOjzjP5oOI9m1+DTQ==",
"path": "microsoft.aspnet.webapi.client/5.2.4",
"hashPath": "microsoft.aspnet.webapi.client.5.2.4.nupkg.sha512"
},
"Microsoft.Bcl.AsyncInterfaces/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==",
"path": "microsoft.bcl.asyncinterfaces/9.0.0",
"hashPath": "microsoft.bcl.asyncinterfaces.9.0.0.nupkg.sha512"
},
"Microsoft.NET.StringTools/17.11.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
"path": "microsoft.net.stringtools/17.11.4",
"hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
},
"Newtonsoft.Json/13.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==",
"path": "newtonsoft.json/13.0.4",
"hashPath": "newtonsoft.json.13.0.4.nupkg.sha512"
},
"Newtonsoft.Json.Bson/1.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5PYT/IqQ+UK31AmZiSS102R6EsTo+LGTSI8bp7WAUqDKaF4wHXD8U9u4WxTI1vc64tYi++8p3dk3WWNqPFgldw==",
"path": "newtonsoft.json.bson/1.0.1",
"hashPath": "newtonsoft.json.bson.1.0.1.nupkg.sha512"
},
"Tea/1.1.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vwpYRSIcbNeRDrrRp6eG1rB2rAE5vOZyrQAjMPCxDTisptsIq4ApdmFc9jvthCIgOeBwTyOe4Y/TYTD88Zq+Yw==",
"path": "tea/1.1.3",
"hashPath": "tea.1.1.3.nupkg.sha512"
},
"Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"GameFix/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"GameModule/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"GameNetModule/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"GlobalSever/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"MrWu/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"NetWorkMessage/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ObjectModel/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ServerCore/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"ServerData/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"zyxAdapter/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"RabbitMQ.Client/0.0.0.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
},
"Ionic.Zip/1.9.3.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
},
"MySql.Data/6.8.8.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
},
"websocket-sharp/1.0.2.29286": {
"type": "reference",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

View File

@ -0,0 +1,617 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.VisualBasic.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Concurrent" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.NonGeneric" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Specialized" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.EventBasedAsync" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.TypeConverter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Core" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Contracts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Debug" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Process" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.TextWriterTraceListener" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.TraceSource" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Drawing.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Globalization" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression.ZipFile" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.DriveInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Watcher" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.IsolatedStorage" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.MemoryMappedFiles" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Parallel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Queryable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.HttpListener" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Mail" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.NameResolution" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.NetworkInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Ping" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Requests" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Security" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Sockets" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebClient" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebHeaderCollection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebProxy" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebSockets.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebSockets" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit.ILGeneration" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit.Lightweight" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Resources.Writer" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.VisualC" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Intrinsics" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Loader" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Numerics" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Formatters" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Json" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Xml" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Claims" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.RegularExpressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Overlapped" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Parallel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.ThreadPool" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Transactions.Local" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.HttpUtility" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XmlSerializer" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="mscorlib" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="netstandard" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
exe/hjha-console/Core.dll Normal file

Binary file not shown.

BIN
exe/hjha-console/Core.pdb Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
exe/hjha-console/MessagePack.dll Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
exe/hjha-console/MrWu.dll Normal file

Binary file not shown.

BIN
exe/hjha-console/MrWu.pdb Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,617 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.VisualBasic.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-15.0.0.0" newVersion="15.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Win32.Registry" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Concurrent" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.NonGeneric" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections.Specialized" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Collections" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.EventBasedAsync" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.TypeConverter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Console" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Core" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Data.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Contracts" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Debug" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.FileVersionInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Process" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.TextWriterTraceListener" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.TraceSource" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Drawing.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Globalization" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression.ZipFile" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.DriveInfo" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.FileSystem.Watcher" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.IsolatedStorage" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.MemoryMappedFiles" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO.Pipes" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Parallel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq.Queryable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.HttpListener" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Mail" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.NameResolution" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.NetworkInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Ping" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Requests" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Security" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Sockets" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebClient" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebHeaderCollection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebProxy" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebSockets.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.WebSockets" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit.ILGeneration" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit.Lightweight" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Emit" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Resources.Writer" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.VisualC" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Intrinsics" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Loader" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Numerics" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Formatters" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.1.0.0" newVersion="8.1.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Json" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Xml" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Claims" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal.Windows" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Text.RegularExpressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.AccessControl" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Overlapped" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Parallel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.Thread" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading.ThreadPool" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Threading" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Transactions.Local" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.HttpUtility" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XPath" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml.XmlSerializer" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="mscorlib" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="netstandard" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
exe/hjha-console/Tea.dll Executable file

Binary file not shown.

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