Adds assemblies config, fixes crash bugs. (#134)
This commit is contained in:
parent
0140eb73b4
commit
8ec166bcd0
3223 changed files with 191 additions and 191 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -35,6 +35,9 @@
|
||||||
/Distribution/Microsoft.Extensions.Options.dll
|
/Distribution/Microsoft.Extensions.Options.dll
|
||||||
/Distribution/Microsoft.Extensions.Primitives.dll
|
/Distribution/Microsoft.Extensions.Primitives.dll
|
||||||
|
|
||||||
|
# Configuration Files
|
||||||
|
!/Distribution/Configuration/assemblies.json
|
||||||
|
|
||||||
/Projects/*/obj
|
/Projects/*/obj
|
||||||
/Projects/*/bin
|
/Projects/*/bin
|
||||||
|
|
||||||
|
|
|
||||||
36
ModernUO.sln
36
ModernUO.sln
|
|
@ -6,11 +6,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Argon2", "Projects\Argon2\A
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server", "Projects\Server\Server.csproj", "{5E93BB35-3661-4822-9A8A-859726BAD87F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server", "Projects\Server\Server.csproj", "{5E93BB35-3661-4822-9A8A-859726BAD87F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scripts", "Projects\Scripts\Scripts.csproj", "{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UOContent", "Projects\UOContent\UOContent.csproj", "{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server.Tests", "Projects\Server.Tests\Server.Tests.csproj", "{D7A5D3AF-D607-46EF-BAAD-0D424190311F}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Server.Tests", "Projects\Server.Tests\Server.Tests.csproj", "{D7A5D3AF-D607-46EF-BAAD-0D424190311F}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Scripts.Tests", "Projects\Scripts.Tests\Scripts.Tests.csproj", "{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UOContent.Tests", "Projects\UOContent.Tests\UOContent.Tests.csproj", "{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zlib", "Projects\ZLib\ZLib.csproj", "{3B030CD2-DB29-4BC2-9C90-D90804B30757}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zlib", "Projects\ZLib\ZLib.csproj", "{3B030CD2-DB29-4BC2-9C90-D90804B30757}"
|
||||||
EndProject
|
EndProject
|
||||||
|
|
@ -21,42 +21,42 @@ Global
|
||||||
Release|x64 = Release|x64
|
Release|x64 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.ActiveCfg = Release|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.Build.0 = Release|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.ActiveCfg = Debug|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.Build.0 = Debug|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Debug|x64.Build.0 = Debug|x64
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.ActiveCfg = Release|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.ActiveCfg = Release|x64
|
||||||
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.Build.0 = Release|x64
|
{5E93BB35-3661-4822-9A8A-859726BAD87F}.Release|x64.Build.0 = Release|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.ActiveCfg = Release|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.Build.0 = Release|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.ActiveCfg = Debug|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.Build.0 = Debug|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Debug|x64.Build.0 = Debug|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.ActiveCfg = Release|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.ActiveCfg = Release|x64
|
||||||
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.Build.0 = Release|x64
|
{83CF2484-BCCB-4B7C-9C5F-7AB43AEA5E8F}.Release|x64.Build.0 = Release|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.ActiveCfg = Debug|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.Build.0 = Debug|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.ActiveCfg = Debug|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.Build.0 = Debug|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Debug|x64.Build.0 = Debug|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.ActiveCfg = Release|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.ActiveCfg = Release|x64
|
||||||
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.Build.0 = Release|x64
|
{D7A5D3AF-D607-46EF-BAAD-0D424190311F}.Release|x64.Build.0 = Release|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.ActiveCfg = Debug|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.Build.0 = Debug|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.ActiveCfg = Debug|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.Build.0 = Debug|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Debug|x64.Build.0 = Debug|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.ActiveCfg = Release|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.ActiveCfg = Release|x64
|
||||||
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.Build.0 = Release|x64
|
{3C4797F9-603E-44EF-8E8C-9275CC9EA74B}.Release|x64.Build.0 = Release|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.ActiveCfg = Release|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.Build.0 = Release|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.ActiveCfg = Debug|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.Build.0 = Debug|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Debug|x64.Build.0 = Debug|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.ActiveCfg = Release|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.ActiveCfg = Release|x64
|
||||||
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.Build.0 = Release|x64
|
{97150E9D-5561-4D3C-9B78-E795544507D0}.Release|x64.Build.0 = Release|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.ActiveCfg = Debug|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.ActiveCfg = Analyze|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.Build.0 = Debug|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Analyze|x64.Build.0 = Analyze|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.ActiveCfg = Debug|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.Build.0 = Debug|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Debug|x64.Build.0 = Debug|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.ActiveCfg = Release|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.ActiveCfg = Release|x64
|
||||||
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.Build.0 = Release|Any CPU
|
{3B030CD2-DB29-4BC2-9C90-D90804B30757}.Release|x64.Build.0 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
|
|
||||||
<PropertyGroup>
|
|
||||||
<RootNamespace>Server</RootNamespace>
|
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
|
||||||
<AssemblyName>Scripts.CS</AssemblyName>
|
|
||||||
<Authors>Kamron Batman</Authors>
|
|
||||||
<Company>ModernUO</Company>
|
|
||||||
<Product>ModernUO Scripts</Product>
|
|
||||||
<Copyright>2019-2020</Copyright>
|
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
||||||
<UseNETCoreGenerator>true</UseNETCoreGenerator>
|
|
||||||
<WarningsAsErrors />
|
|
||||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
|
||||||
<LangVersion>8.0</LangVersion>
|
|
||||||
<!-- <OutDir>$(SolutionDir)\Distribution\Assemblies</OutDir>-->
|
|
||||||
<!-- <OutputPath>$(SolutionDir)\Distribution\Assemblies</OutputPath>-->
|
|
||||||
<PublishDir>$(SolutionDir)\Distribution\Assemblies</PublishDir>
|
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
||||||
<Configurations>Debug;Release;Analyze</Configurations>
|
|
||||||
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">WINDOWS</DefineConstants>
|
|
||||||
<Platforms>x64</Platforms>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Target Name="CleanPub" AfterTargets="Clean">
|
|
||||||
<Message Text="Removing distribution assemblies..." />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\BouncyCastle.Crypto.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\MailKit.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\MimeKit.dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).dll" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).deps.json" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\$(AssemblyName).pdb" ContinueOnError="true" />
|
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Assemblies\System.IO.Pipelines.dll" ContinueOnError="true" />
|
|
||||||
</Target>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
||||||
<DefineConstants>TRACE;DEBUG;$(DefineConstants)</DefineConstants>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
|
||||||
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
|
||||||
<CodeAnalysisRuleSet>$(SolutionDir)\Rules.ruleset</CodeAnalysisRuleSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="SpecialSystems\README.TXT" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Server\Server.csproj" Private="false" PrivateAssets="All" IncludeAssets="None">
|
|
||||||
<IncludeInPackage>false</IncludeInPackage>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="MailKit" Version="2.6.0" />
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.3" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.3" />
|
|
||||||
<PackageReference Include="Argon2.Bindings" Version="1.1.0" />
|
|
||||||
<PackageReference Include="Zlib.Bindings" Version="1.0.0" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|AnyCPU'">
|
|
||||||
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
|
|
||||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json" Link="stylecop.json" />
|
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.8">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset" Link="Rules.rulest" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
|
||||||
<PackageReference Include="StyleCop.Analyzers">
|
|
||||||
<Version>1.1.118</Version>
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json">
|
|
||||||
<Link>stylecop.json</Link>
|
|
||||||
</AdditionalFiles>
|
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
|
||||||
<Version>2.9.8</Version>
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset">
|
|
||||||
<Link>Rules.rulest</Link>
|
|
||||||
</AdditionalFiles>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
<PackageReference Include="coverlet.collector" Version="1.2.1" />
|
<PackageReference Include="coverlet.collector" Version="1.2.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Scripts\Scripts.csproj" />
|
|
||||||
<ProjectReference Include="..\Server\Server.csproj" />
|
<ProjectReference Include="..\Server\Server.csproj" />
|
||||||
|
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
* ModernUO *
|
* ModernUO *
|
||||||
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
||||||
* Email: hi@modernuo.com *
|
* Email: hi@modernuo.com *
|
||||||
* File: AssemblyHandler.cs - Created: 2019/08/02 - Updated: 2020/01/19 *
|
* File: AssemblyHandler.cs - Created: 2019/08/02 - Updated: 2020/05/09 *
|
||||||
* *
|
* *
|
||||||
* This program is free software: you can redistribute it and/or modify *
|
* This program is free software: you can redistribute it and/or modify *
|
||||||
* it under the terms of the GNU General Public License as published by *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
|
@ -33,21 +33,14 @@ namespace Server
|
||||||
private static TypeCache m_NullCache;
|
private static TypeCache m_NullCache;
|
||||||
public static Assembly[] Assemblies { get; set; }
|
public static Assembly[] Assemblies { get; set; }
|
||||||
|
|
||||||
public static readonly string AssembliesPath = EnsureDirectory("Assemblies");
|
public static void LoadScripts(string[] files)
|
||||||
|
{
|
||||||
|
var assemblies = new Assembly[files.Length];
|
||||||
|
|
||||||
public static void LoadScripts(string path = null) =>
|
for (int i = 0; i < files.Length; i++) assemblies[i] = AssemblyLoadContext.Default.LoadFromAssemblyPath(files[i]);
|
||||||
Assemblies = Directory.GetFiles(path ?? AssembliesPath, "*.dll")
|
|
||||||
.Select(t =>
|
Assemblies = assemblies;
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return AssemblyLoadContext.Default.LoadFromAssemblyPath(t);
|
|
||||||
} catch (BadImageFormatException)
|
|
||||||
{
|
|
||||||
// ignored
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}).Where(t => t != null).ToArray();
|
|
||||||
|
|
||||||
public static void Invoke(string method)
|
public static void Invoke(string method)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
* Copyright (C) 2019-2020 - ModernUO Development Team *
|
||||||
* Email: hi@modernuo.com *
|
* Email: hi@modernuo.com *
|
||||||
* File: ServerConfiguration.cs *
|
* File: ServerConfiguration.cs *
|
||||||
* Created: 2019/10/04 - Updated: 2020/05/02 *
|
* Created: 2019/10/04 - Updated: 2020/05/09 *
|
||||||
* *
|
* *
|
||||||
* This program is free software: you can redistribute it and/or modify *
|
* This program is free software: you can redistribute it and/or modify *
|
||||||
* it under the terms of the GNU General Public License as published by *
|
* it under the terms of the GNU General Public License as published by *
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ using System.Threading.Tasks;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
|
using Server.Json;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
||||||
namespace Server
|
namespace Server
|
||||||
|
|
@ -117,8 +118,6 @@ namespace Server
|
||||||
|
|
||||||
public static Thread Thread { get; private set; }
|
public static Thread Thread { get; private set; }
|
||||||
|
|
||||||
public static MultiTextWriter MultiConsoleOut { get; private set; }
|
|
||||||
|
|
||||||
public static bool UsingHighResolutionTiming => m_HighRes && !Unix;
|
public static bool UsingHighResolutionTiming => m_HighRes && !Unix;
|
||||||
|
|
||||||
public static long TickCount => (long)Ticks;
|
public static long TickCount => (long)Ticks;
|
||||||
|
|
@ -309,6 +308,8 @@ namespace Server
|
||||||
m_Signal.Set();
|
m_Signal.Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string assembliesConfiguration = "Configuration/assemblies.json";
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||||
|
|
@ -382,8 +383,13 @@ namespace Server
|
||||||
|
|
||||||
ServerConfiguration.Load();
|
ServerConfiguration.Load();
|
||||||
|
|
||||||
// Load Assembly Scripts.CS.dll
|
// Load UOContent.dll
|
||||||
AssemblyHandler.LoadScripts();
|
string[] assemblyFiles = JsonConfig.Deserialize<List<string>>(
|
||||||
|
Path.Join(BaseDirectory, assembliesConfiguration)
|
||||||
|
).Select(t => Path.Join(BaseDirectory, "Assemblies", t)).ToArray();
|
||||||
|
AssemblyHandler.LoadScripts(assemblyFiles);
|
||||||
|
|
||||||
|
VerifySerialization();
|
||||||
|
|
||||||
AssemblyHandler.Invoke("Configure");
|
AssemblyHandler.Invoke("Configure");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,66 +16,70 @@
|
||||||
<UseNETCoreGenerator>true</UseNETCoreGenerator>
|
<UseNETCoreGenerator>true</UseNETCoreGenerator>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<LangVersion>8.0</LangVersion>
|
<LangVersion>8.0</LangVersion>
|
||||||
<PublishDir>$(SolutionDir)\Distribution</PublishDir>
|
<PublishDir>..\..\Distribution</PublishDir>
|
||||||
<!-- <OutDir>$(SolutionDir)\Distribution</OutDir>-->
|
|
||||||
<!-- <OutputPath>$(SolutionDir)\Distribution</OutputPath>-->
|
|
||||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||||
<WarningsAsErrors />
|
<WarningsAsErrors />
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||||
<Configurations>Debug;Release;Analyze</Configurations>
|
<Configurations>Debug;Release;Analyze</Configurations>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
|
<DefineConstants Condition="$(RuntimeIdentifier.StartsWith('win'))">WINDOWS</DefineConstants>
|
||||||
|
<DefineConstants Condition="$(RuntimeIdentifier.StartsWith(`win`)) != true">UNIX</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Target Name="CleanPub" AfterTargets="Clean">
|
<Target Name="CleanPub" AfterTargets="Clean">
|
||||||
<Message Text="Removing distribution files..." />
|
<Message Text="Removing distribution files..." />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\libuv.dylib" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libuv.dylib" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\libuv.so" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libuv.so" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\libuv.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libuv.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\zlib.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\zlib.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\libz.dylib" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libz.dylib" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\libz.so" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libz.so" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\libdrng.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Connections.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Http.Features.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.Configuration.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.DependencyInjection.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.FileProviders.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.Hosting.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Options.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.Logging.Abstractions.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.Options.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName)" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\Microsoft.Extensions.Primitives.dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName)" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).dll.config" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).dll" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).exe" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).dll.config" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).deps.json" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).exe" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).pdb" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).deps.json" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).pdb" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
|
||||||
<Delete Files="$(SolutionDir)\Distribution\System.IO.Pipelines.dll" ContinueOnError="true" />
|
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
|
||||||
|
<Delete Files="..\..\Distribution\System.IO.Pipelines.dll" ContinueOnError="true" />
|
||||||
</Target>
|
</Target>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
<ItemGroup>
|
||||||
|
<AdditionalFiles Include="..\..\Rules.ruleset">
|
||||||
|
<Link>Rules.rulest</Link>
|
||||||
|
</AdditionalFiles>
|
||||||
|
<AdditionalFiles Include="..\..\stylecop.json">
|
||||||
|
<Link>stylecop.json</Link>
|
||||||
|
</AdditionalFiles>
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
<PropertyGroup Condition="'$(Configuration)'=='Analyze'">
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||||
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
|
||||||
<CodeAnalysisRuleSet>$(SolutionDir)\Rules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>..\..\Rules.ruleset</CodeAnalysisRuleSet>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Assemblies\libdrng.dll" Condition="'$(RuntimeIdentifier)' == 'win-x64'">
|
<Content Include="Assemblies\libdrng.dll" Condition="$(DefineConstants.Contains('WINDOWS'))">
|
||||||
<Link>libdrng.dll</Link>
|
<Link>libdrng.dll</Link>
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<!-- <Content Include="Assemblies\zlib.dll" Condition="'$(RuntimeIdentifier)' == 'win-x64'">
|
|
||||||
<Link>zlib.dll</Link>
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</Content> -->
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
<PackageReference Include="Microsoft.AspNetCore.Connections.Abstractions" Version="3.1.3" />
|
||||||
|
|
@ -93,21 +97,15 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="Kestrel\Transport.Libuv\**" />
|
<None Remove="Kestrel\Transport.Libuv\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition="'$(Configuration)|$(Platform)'=='Analyze|x64'">
|
<ItemGroup Condition="'$(Configuration)'=='Analyze'">
|
||||||
<PackageReference Include="StyleCop.Analyzers">
|
<PackageReference Include="StyleCop.Analyzers">
|
||||||
<Version>1.1.118</Version>
|
<Version>1.1.118</Version>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<AdditionalFiles Include="$(SolutionDir)\stylecop.json">
|
|
||||||
<Link>stylecop.json</Link>
|
|
||||||
</AdditionalFiles>
|
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers">
|
||||||
<Version>2.9.8</Version>
|
<Version>2.9.8</Version>
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<AdditionalFiles Include="$(SolutionDir)\Rules.ruleset">
|
|
||||||
<Link>Rules.rulest</Link>
|
|
||||||
</AdditionalFiles>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">WINDOWS</DefineConstants>
|
<DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">WINDOWS</DefineConstants>
|
||||||
|
<RootNamespace>Scripts.Tests</RootNamespace>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
|
||||||
|
|
@ -12,6 +13,6 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Server\Server.csproj" />
|
<ProjectReference Include="..\Server\Server.csproj" />
|
||||||
<ProjectReference Include="..\Scripts\Scripts.csproj" />
|
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
@ -39,10 +39,9 @@ namespace Server.Accounting.Security
|
||||||
|
|
||||||
public static class AccountSecurity
|
public static class AccountSecurity
|
||||||
{
|
{
|
||||||
// TODO: Put it in a configuration
|
|
||||||
public static PasswordProtectionAlgorithm CurrentAlgorithm { get; set; }
|
public static PasswordProtectionAlgorithm CurrentAlgorithm { get; set; }
|
||||||
|
|
||||||
public static readonly IPasswordProtection CurrentPasswordProtection = GetPasswordProtection(CurrentAlgorithm);
|
public static IPasswordProtection CurrentPasswordProtection => GetPasswordProtection(CurrentAlgorithm);
|
||||||
|
|
||||||
public static void Configure()
|
public static void Configure()
|
||||||
{
|
{
|
||||||
|
|
@ -50,7 +49,7 @@ namespace Server.Accounting.Security
|
||||||
ServerConfiguration.GetOrUpdateSetting("accountSecurity.encryptionAlgorithm", PasswordProtectionAlgorithm.Argon2);
|
ServerConfiguration.GetOrUpdateSetting("accountSecurity.encryptionAlgorithm", PasswordProtectionAlgorithm.Argon2);
|
||||||
|
|
||||||
if (CurrentAlgorithm < PasswordProtectionAlgorithm.SHA2)
|
if (CurrentAlgorithm < PasswordProtectionAlgorithm.SHA2)
|
||||||
throw new Exception($"Security: {CurrentAlgorithm} is obselete and not secure. Do not use it.");
|
throw new Exception($"Security: {CurrentAlgorithm} is obsolete and not secure. Do not use it.");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IPasswordProtection GetPasswordProtection(PasswordProtectionAlgorithm algorithm)
|
public static IPasswordProtection GetPasswordProtection(PasswordProtectionAlgorithm algorithm)
|
||||||
|
|
@ -62,7 +61,8 @@ namespace Server.Accounting.Security
|
||||||
PasswordProtectionAlgorithm.SHA2 => SHA2PasswordProtection.Instance,
|
PasswordProtectionAlgorithm.SHA2 => SHA2PasswordProtection.Instance,
|
||||||
PasswordProtectionAlgorithm.PBKDF2 => PBKDF2PasswordProtection.Instance,
|
PasswordProtectionAlgorithm.PBKDF2 => PBKDF2PasswordProtection.Instance,
|
||||||
PasswordProtectionAlgorithm.Argon2 => Argon2PasswordProtection.Instance,
|
PasswordProtectionAlgorithm.Argon2 => Argon2PasswordProtection.Instance,
|
||||||
_ => null
|
PasswordProtectionAlgorithm.None => throw new Exception("Do not use PasswordProtectionAlgorithm.None"),
|
||||||
|
_ => throw new Exception("No algorithm")
|
||||||
};
|
};
|
||||||
|
|
||||||
return passwordProtection;
|
return passwordProtection;
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue