feat: Adds .NET 7 & Arm64 support (#1229)

## BREAKING CHANGE
**Publishing for linux will no longer include runtimes**

## Major Changes
* Adds .NET 7 support.
* Adds ARM64 support (experimental).
* Changes linux support to be open-ended against anything .NET 7 supports.
* Fixes native library resolutions. (Make sure to install `dev` versions of the libraries)
* Updates README
* Adds Ubuntu 22, CentOS 8/9 Stream to CI/CD.

## TODOs:
* Update modernuo.com docs

Closes #1173
Closes #1159
This commit is contained in:
Kamron Batman 2022-11-06 09:59:11 -08:00 • committed by GitHub
parent 119eec6b61
commit 5bd41d5b68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 164 additions and 232 deletions

View file

@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"modernuoschemagenerator": {
"version": "2.5.2",
"version": "2.5.3",
"commands": [
"ModernUOSchemaGenerator"
]

View file

@ -21,10 +21,10 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: Setup .NET 6
- name: Setup .NET 7
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.402
dotnet-version: 7.0.100-rc.2.22477.23
- name: Build
run: ./publish.cmd Release
- name: Test
@ -38,22 +38,40 @@ jobs:
fail-fast: false
matrix:
include:
- container: fedora:35
name: Fedora 35
- container: ubuntu:jammy
name: Ubuntu 22
packageManager: apt
- container: debian:bullseye
name: Debian 11
packageManager: apt
- container: fedora:36
name: Fedora 36
packageManager: dnf
- container: quay.io/centos/centos:stream8
name: CentOS 8 Stream
packageManager: dnf
- container: quay.io/centos/centos:stream9
name: CentOS 9 Stream
packageManager: dnf
steps:
- name: Install Prerequisites
run: dnf makecache --refresh && dnf install -y findutils libicu
- name: Enable EPEL
run: dnf upgrade --refresh -y && dnf install -y epel-release epel-next-release
if: ${{ startsWith(matrix.name, 'CentOS') }}
- name: Install Prerequisites using dnf
run: dnf makecache --refresh && dnf install -y findutils libicu zlib-devel zstd libargon2-devel
if: ${{ matrix.packageManager == 'dnf' }}
- name: Install Prerequisites using apt
run: apt-get update -y && apt-get install -y curl libicu-dev libz-dev zstd libargon2-dev
if: ${{ matrix.packageManager == 'apt' }}
- uses: actions/checkout@v3
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: Setup .NET 6
- name: Setup .NET 7
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.402
dotnet-version: 7.0.100-rc.2.22477.23
- name: Build
run: ./publish.cmd Release
run: ./publish.sh Release
- name: Test
run: dotnet test --no-restore

View file

@ -4,14 +4,13 @@
<Authors>Kamron Batman</Authors>
<Company>ModernUO</Company>
<Copyright>2019-2022</Copyright>
<TargetFramework>net6.0</TargetFramework>
<Platforms>x64</Platforms>
<PlatformTarget>x64</PlatformTarget>
<TargetFramework>net7.0</TargetFramework>
<Platforms>x64;arm64</Platforms>
<LangVersion>preview</LangVersion>
<PublicRelease>true</PublicRelease>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<NoWarn>NU1603</NoWarn>
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64;debian.10-x64;debian.11-x64;ubuntu.16.04-x64;ubuntu.18.04-x64;ubuntu.20.04-x64;centos.7-x64;centos.8-x64;fedora.32-x64;fedora.33-x64;fedora.34-x64;fedora.35-x64;fedora.36-x64;rhel.7-x64;rhel.8-x64;linuxmint.17-x64;linuxmint.18-x64;linuxmint.19-x64</RuntimeIdentifiers>
<RuntimeIdentifiers>win-x64;win-arm64;osx-x64;osx-arm64;linux-x64;linux-arm64</RuntimeIdentifiers>
<Configurations>Debug;Release;Analyze</Configurations>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
@ -21,10 +20,14 @@
<IsWindows Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true'">true</IsWindows>
<IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>
<IsLinux Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
<IsX64 Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)' == 'X64'">true</IsX64>
<IsArm64 Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)' == 'ARM64'">true</IsArm64>
<DefineConstants Condition="'$(IsWindows)'=='true'">WINDOWS</DefineConstants>
<DefineConstants Condition="'$(IsOSX)'=='true'">OSX</DefineConstants>
<DefineConstants Condition="'$(IsLinux)'=='true'">LINUX</DefineConstants>
<DefineConstants Condition="'$(IsOSX)'=='true' OR '$(IsLinux)'=='true'">UNIX</DefineConstants>
<DefineConstants Condition="'$(IsX64)'=='true'">CPU_X64</DefineConstants>
<DefineConstants Condition="'$(IsArm64)'=='true'">CPU_ARM64</DefineConstants>
<DefineConstants Condition="'$(SkipLocalsInitAttribute)'=='true'">NO_LOCAL_INIT</DefineConstants>
<DefineConstants>MUO</DefineConstants>
<GitVersionBaseDirectory>$(SolutionDir)</GitVersionBaseDirectory>
@ -36,12 +39,18 @@
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<PropertyGroup Condition="'$(IsWindows)'=='true' AND '$(RuntimeIdentifier)'==''">
<PropertyGroup Condition="'$(IsWindows)'=='true' AND '$(IsX64)'=='true' AND '$(RuntimeIdentifier)'==''">
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(IsOSX)'=='true' AND '$(RuntimeIdentifier)'==''">
<PropertyGroup Condition="'$(IsWindows)'=='true' AND '$(IsArm64)'=='true' AND '$(RuntimeIdentifier)'==''">
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(IsOSX)'=='true' AND '$(IsX64)'=='true' AND '$(RuntimeIdentifier)'==''">
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(IsOSX)'=='true' AND '$(isArm64)'=='true' AND '$(RuntimeIdentifier)'==''">
<RuntimeIdentifier>osx-arm64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<DefineConstants>TRACE;DEBUG</DefineConstants>
<Optimize>false</Optimize>

View file

@ -316,11 +316,7 @@ public ref struct PooledRefQueue<T>
}
// Increments the index wrapping it if necessary.
#if NET7_SDK
private void MoveNext(scoped ref int index)
#else
private void MoveNext(ref int index)
#endif
{
// It is tempting to use the remainder operator here but it is actually much slower
// than a simple comparison and a rarely taken branch.

View file

@ -36,11 +36,7 @@ public class GumpAlphaRegion : GumpEntry
public int Height { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ checkertrans {X} {Y} {Width} {Height} }}");
}

View file

@ -39,11 +39,7 @@ public class GumpBackground : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ resizepic {X} {Y} {GumpID} {Width} {Height} }}");
}

View file

@ -54,11 +54,7 @@ public class GumpButton : GumpEntry
public int Param { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ button {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} }}");
}

View file

@ -42,11 +42,7 @@ public class GumpCheck : GumpEntry
public int SwitchID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var initialState = InitialState ? "1" : "0";
writer.WriteAscii($"{{ checkbox {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}");

View file

@ -22,11 +22,7 @@ public class GumpECHandleInput : GumpEntry
{
private static byte[] _layout = Gump.StringToBuffer("{ echandleinput }");
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.Write(_layout);
}

View file

@ -25,9 +25,5 @@ public abstract class GumpEntry
// TODO: Replace OrderedHashSet with InsertOnlyHashSet, a copy of HashSet that is ReadOnly compatible, but includes
// a public AddIfNotPresent function that returns the index of the element
#if NET7_SDK
public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches);
#else
public abstract void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches);
#endif
}

View file

@ -26,11 +26,7 @@ public class GumpGroup : GumpEntry
public int Group { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
if (Group == 1)
{

View file

@ -45,11 +45,7 @@ public class GumpHtml : GumpEntry
public bool Scrollbar { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
var background = Background ? "1" : "0";

View file

@ -101,11 +101,7 @@ public class GumpHtmlLocalized : GumpEntry
public GumpHtmlLocalizedType Type { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var background = Background ? "1" : "0";
var scrollbar = Scrollbar ? "1" : "0";

View file

@ -39,11 +39,7 @@ public class GumpImage : GumpEntry
public string Class { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var hasHue = Hue != 0;
var hasClass = !string.IsNullOrEmpty(Class);

View file

@ -61,11 +61,7 @@ public class GumpImageTileButton : GumpEntry
public int Height { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(
$"{{ buttontileart {X} {Y} {NormalID} {PressedID} {(int)Type} {Param} {ButtonID} {ItemID} {Hue} {Width} {Height} }}"

View file

@ -39,11 +39,7 @@ public class GumpImageTiled : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ gumppictiled {X} {Y} {Width} {Height} {GumpID} }}");
}

View file

@ -36,11 +36,7 @@ public class GumpItem : GumpEntry
public int Hue { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(Hue == 0 ? $"{{ tilepic {X} {Y} {ItemID} }}" : $"{{ tilepichue {X} {Y} {ItemID} {Hue} }}");
}

View file

@ -24,11 +24,7 @@ public class GumpItemProperty : GumpEntry
public Serial Serial { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ itemproperty {Serial.Value} }}");
}

View file

@ -36,11 +36,7 @@ public class GumpLabel : GumpEntry
public string Text { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
writer.WriteAscii($"{{ text {X} {Y} {Hue} {textIndex} }}");

View file

@ -42,11 +42,7 @@ public class GumpLabelCropped : GumpEntry
public string Text { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(Text ?? "");
writer.WriteAscii($"{{ croppedtext {X} {Y} {Width} {Height} {Hue} {textIndex} }}");

View file

@ -24,11 +24,7 @@ public class GumpMasterGump : GumpEntry
public int GumpID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ mastergump {GumpID} }}");
}

View file

@ -26,11 +26,7 @@ public class GumpPage : GumpEntry
public int Page { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
if (Page == 0)
{

View file

@ -42,11 +42,7 @@ public class GumpRadio : GumpEntry
public int SwitchID { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var initialState = InitialState ? "1" : "0";
writer.WriteAscii($"{{ radio {X} {Y} {InactiveID} {ActiveID} {initialState} {SwitchID} }}");

View file

@ -45,11 +45,7 @@ public class GumpSpriteImage : GumpEntry
public int SY { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii($"{{ picinpic {X} {Y} {GumpID} {Width} {Height} {SX} {SY} }}");
}

View file

@ -45,11 +45,7 @@ public class GumpTextEntry : GumpEntry
public string InitialText { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(InitialText ?? "");
writer.WriteAscii($"{{ textentry {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} }}");

View file

@ -50,11 +50,7 @@ public class GumpTextEntryLimited : GumpEntry
public int Size { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
var textIndex = strings.GetOrAdd(InitialText ?? "");
writer.WriteAscii($"{{ textentrylimited {X} {Y} {Width} {Height} {Hue} {EntryID} {textIndex} {Size} }}");

View file

@ -32,11 +32,7 @@ public class GumpTooltip : GumpEntry
public string Args { get; set; }
#if NET7_SDK
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, scoped ref int entries, scoped ref int switches)
#else
public override void AppendTo(ref SpanWriter writer, OrderedHashSet<string> strings, ref int entries, ref int switches)
#endif
{
writer.WriteAscii(string.IsNullOrEmpty(Args) ? $"{{ tooltip {Number} }}" : $"{{ tooltip {Number} @{Args}@ }}");
}

View file

@ -10,7 +10,6 @@
<PublishDir>..\..\Distribution</PublishDir>
<OutDir>..\..\Distribution</OutDir>
<Version>0.0.0</Version>
<DefineConstants Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '7.0'))">NET7_SDK</DefineConstants>
</PropertyGroup>
<Target Name="CleanPub" AfterTargets="Clean">
<Message Text="Removing distribution files..." />
@ -23,8 +22,6 @@
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
<Delete Files="..\..\Distribution\ModernUO.Serialization.Annotations.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\libz.dylib" ContinueOnError="true" />
<Delete Files="..\..\Distribution\libz.so" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Microsoft.Toolkit.HighPerformance.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\PollGroup.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\ref\$(AssemblyName).dll" ContinueOnError="true" />
@ -33,15 +30,14 @@
<Delete Files="..\..\Distribution\Serilog.Sinks.Console.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\wepoll.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\ZLib.Bindings.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\zlib.dll" ContinueOnError="true" />
</Target>
<ItemGroup>
<PackageReference Include="Microsoft.Toolkit.HighPerformance" Version="7.1.2" />
<PackageReference Include="PollGroup" Version="1.2.1" />
<PackageReference Include="PollGroup" Version="1.3.0" />
<PackageReference Include="Standart.Hash.xxHash.Signed" Version="4.0.5" />
<PackageReference Include="Zlib.Bindings" Version="1.9.2" />
<PackageReference Include="Zlib.Bindings" Version="1.10.1" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.5.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.5.3" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.5.2" />
</ItemGroup>
<ItemGroup>

View file

@ -6,7 +6,6 @@
<Product>ModernUO Content</Product>
<PublishDir>..\..\Distribution\Assemblies</PublishDir>
<OutDir>..\..\Distribution\Assemblies</OutDir>
<DefineConstants Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '7.0'))">NET7_SDK</DefineConstants>
</PropertyGroup>
<Target Name="CleanPub" AfterTargets="Clean">
<Message Text="Removing distribution assemblies..." />
@ -24,15 +23,7 @@
<Delete Files="..\..\Distribution\Assemblies\ref\$(AssemblyName).dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\$(AssemblyName).deps.json" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\$(AssemblyName).pdb" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\libargon2.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\libargon2.dylib" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\libargon2.so" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\zlib.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\libz.dylib" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\libz.so" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\ZLib.Bindings.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\zstd" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\zstd.exe" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\Zstd.Binaries.dll" ContinueOnError="true" />
<Delete Files="..\..\Distribution\Assemblies\ModernUO.Serialization.Annotations.dll" ContinueOnError="true" />
</Target>
@ -43,11 +34,11 @@
<PackageReference Include="MailKit" Version="3.4.2" />
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="6.0.0" />
<PackageReference Include="Microsoft.Toolkit.HighPerformance" Version="7.1.2" />
<PackageReference Include="Zlib.Bindings" Version="1.9.2" />
<PackageReference Include="Argon2.Bindings" Version="1.13.0" />
<PackageReference Include="Zstd.Binaries" Version="1.4.0" />
<PackageReference Include="Zlib.Bindings" Version="1.10.1" />
<PackageReference Include="Argon2.Bindings" Version="1.14.4" />
<PackageReference Include="Zstd.Binaries" Version="1.5.1" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.5.0" />
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.5.3" />
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.5.2" />
</ItemGroup>
<ItemGroup>

View file

@ -15,31 +15,38 @@ ModernUO [![Discord](https://img.shields.io/discord/751317910504603701?logo=disc
## Requirements
#### Supported Operating Systems
[![Windows 10/11/2016/2019/2022](https://img.shields.io/badge/-server%202022-0078D6?logo=windows)](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022)
![MacOS 10.15/11/12](https://img.shields.io/badge/-monterey-222222?logo=apple&logoColor=white)
[![Debian 10/11](https://img.shields.io/badge/-bullseye-A81D33?logo=debian)](https://www.debian.org/distrib/)
[![Ubuntu 16/18/20 LTS](https://img.shields.io/badge/-20LTS-E95420?logo=ubuntu&logoColor=white)](https://ubuntu.com/download/server)
[![Linux Mint 17/18/19/20](https://img.shields.io/badge/-20-87CF3E?logo=linux%20mint&logoColor=white)](https://linuxmint.com/download.php)
[![CentOS 7/8](https://img.shields.io/badge/-8.5-262577?logo=centos&logoColor=white)](https://www.centos.org/download/)
[![Fedora 32/33/34/35/36](https://img.shields.io/badge/-36-51a2da?logo=fedora&logoColor=white)](https://getfedora.org/en/server/download/)
[![RedHat 7/8](https://img.shields.io/badge/-8-BE0000?logo=red%20hat&logoColor=white)](https://access.redhat.com/downloads)
[![Windows 10/11/2016/2019/2022](https://img.shields.io/badge/-server%202022-0078D6?logo=windows&logoColor=0078D6&labelColor=222222)](https://www.microsoft.com/en-US/evalcenter/evaluate-windows-server-2022)
![MacOS 10.15/11/12/13](https://img.shields.io/badge/-ventura-222222?logo=apple&logoColor=white&labelColor=222222)
[![Debian 10/11](https://img.shields.io/badge/-bullseye-A81D33?logo=debian&logoColor=A81D33&labelColor=222222)](https://www.debian.org/distrib/)
[![Ubuntu 16/18/20/22 LTS](https://img.shields.io/badge/-22LTS-E95420?logo=ubuntu&logoColor=E95420&labelColor=222222)](https://ubuntu.com/download/server)
<br />
[![Alpine 3.15+](https://img.shields.io/badge/-3.16-0D597F?logo=alpinelinux&logoColor=0D597F&labelColor=222222)](https://alpinelinux.org/downloads/)
[![Fedora 33/34/35/36](https://img.shields.io/badge/-36-51a2da?logo=fedora&logoColor=51a2da&labelColor=222222)](https://getfedora.org/en/server/download/)
[![RedHat 7/8](https://img.shields.io/badge/-8-BE0000?logo=redhat&logoColor=BE0000&labelColor=222222)](https://access.redhat.com/downloads)
[![CentOS 7/8/9](https://img.shields.io/badge/-9-262577?logo=centos&logoColor=white&labelColor=222222)](https://www.centos.org/download/)
[![openSUSE 15+](https://img.shields.io/badge/-15-73BA25?logo=openSUSE&logoColor=73BA25&labelColor=222222)](https://get.opensuse.org/)
[![SUSE Enterprise 12 SP2+](https://img.shields.io/badge/-12%20SP2-0C322C?logo=suse&logoColor=30BA78&labelColor=222222)](https://www.suse.com/download/sles/)
[![Linux Mint 17/18/19/20](https://img.shields.io/badge/-20-87CF3E?logo=linux%20mint&logoColor=87CF3E&labelColor=222222)](https://linuxmint.com/download.php)
[![Arch](https://img.shields.io/badge/-Arch-1793D1?logo=archlinux&logoColor=1793D1&labelColor=222222)](https://archlinux.org/download/)
#### Running the server
[![.NET](https://img.shields.io/badge/-6.0.8-5C2D91?logo=.NET)](https://dotnet.microsoft.com/download/dotnet/6.0)
[![.NET](https://img.shields.io/badge/-7.0.0-5C2D91?logo=.NET&logoColor=white&labelColor=222222)](https://dotnet.microsoft.com/download/dotnet/7.0)
#### Development
[![git](https://img.shields.io/badge/-git-F05032?logo=git&logoColor=white)](https://git-scm.com/downloads)
[![.NET](https://img.shields.io/badge/-%206.0.400%20SDK-5C2D91?logo=.NET)](https://dotnet.microsoft.com/download/dotnet/6.0)
[![git](https://img.shields.io/badge/-git-F05032?logo=git&logoColor=F05032&labelColor=222222)](https://git-scm.com/downloads)
[![.NET](https://img.shields.io/badge/-%207.0.100%20SDK-5C2D91?logo=.NET&logoColor=white&labelColor=222222)](https://dotnet.microsoft.com/download/dotnet/7.0)
#### Supported IDEs
&nbsp;&nbsp;&nbsp;
[<img height="64"
title="Jetbrains Rider 2022.2.2" alt="Jetbrains Rider 2022.2.2" src="https://user-images.githubusercontent.com/3953314/133473479-734e425c-fbb6-433a-af2d-2cc8444398e8.png">](https://www.jetbrains.com/rider/download)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
[<img height="64" title="Visual Studio 2022" alt="Visual Studio 2022" src="https://user-images.githubusercontent.com/3953314/133473556-35fd48b4-6460-49b1-b7c5-b4a8c529cc04.png">](https://visualstudio.microsoft.com/downloads)
<br />
Rider 2022.2.2+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visual Studio 2022+
###### Note: VS Code is not currently supported.
<p align="left"><a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2022.2.3+"
alt="Jetbrains Rider 2022.2.3+"
src="https://user-images.githubusercontent.com/3953314/133473479-734e425c-fbb6-433a-af2d-2cc8444398e8.png"></a><img
alt="space" width="32" src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://code.visualstudio.com/download"><img height="64" title="VSCode"
alt="VSCode"
src="https://user-images.githubusercontent.com/3953314/200161017-7697171f-8f13-4829-95d0-8a25b59ee4c9.png"></a><img alt="space" width="32"
src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2022 v17.4+"
alt="Visual Studio 2022 v17.4+"
src="https://user-images.githubusercontent.com/3953314/133473556-35fd48b4-6460-49b1-b7c5-b4a8c529cc04.png"></a></p>
## Getting Started
- Install prerequisite [requirements](https://github.com/modernuo/ModernUO#requirements)
@ -48,26 +55,36 @@ Rider 2022.2.2+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
- Open `ModernUO.sln` to start developing
## Building/Publishing
- Run `./publish.cmd [release|debug (default: release)] [os]`
- `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md)
- Run `./publish.cmd [release|debug (default: release)] [os] [arch (default: x64)]`
- `os` - [Supported operating systems](https://github.com/dotnet/core/blob/main/release-notes/7.0/supported-os.md)
- `win` - Windows 10/11/2016/2019/2022
- `osx` - MacOS 10.15/11.0+/12.0+ (Catalina, Big Sur, Monterey)
- `ubuntu.16.04`, `ubuntu.18.04` `ubuntu.20.04` - Ubuntu LTS
- `linuxmint.17`, `linuxmint.18`, `linuxmint.19` - Linux Mint
- `debian.10`, `debian.11` - Debian
- `centos.7`, `centos.8` - CentOS
- `fedora.32`, `fedora.33`, `fedora.34`, `fedora.35`, `fedora.36` - Fedora
- `rhel.7`, `rhel.8` - Redhat
- `linux` - Other linux distros
- If blank, the operating system running the build is used. Linux Mint 20 is not supported directly yet, so build explicitly against `ubuntu.20.04` instead.
- `osx` - MacOS 10.15/11/12/13 (Catalina, Big Sur, Monterey, Ventura)
- `linux` - Linux
- `arch`
- `x64` - Intel 64-bit
- `arm64` - ARM 64-bit
## Linux Prerequisites
### Fedora, CentOS, RHEL, etc
```shell
dnf upgrade --refresh -y
# CentOS does not come with EPEL enabled
dnf install -y epel-release epel-next-release
# Note: libargon2 is old.
# Download/symlink from here: https://github.com/modernuo/Argon2.Bindings/tree/main/runtimes
dnf install -y findutils libicu zlib-devel zstd libargon2-devel
```
### Ubuntu, Debian, etc
```shell
apt-get update -y
apt-get install -y libicu-dev libz-dev zstd libargon2-dev
```
## Running the Server
- Follow the [publish](https://github.com/modernuo/ModernUO#publishing-builds) instructions
- Run `ModernUO.exe` or `dotnet ModernUO.dll` from the `Distribution` directory on the server
**Note:** If you are running a version of linux that isn't listed above, then you may have to install the following using a package manager:
* `libargon2-dev`, `libz-dev`, and `zstd`
## Troubleshooting / FAQ
- See [FAQ](./FAQ.md)

View file

@ -15,41 +15,10 @@ jobs:
steps:
- task: UseDotNet@2
displayName: 'Install .NET 6'
displayName: 'Install .NET 7'
inputs:
packageType: sdk
version: 6.0.402
- task: NuGetAuthenticate@1
- script: ./publish.cmd Release
displayName: 'Build'
- script: dotnet test --no-restore
displayName: 'Test'
- job: BuildLinux
strategy:
matrix:
'CentOS 8':
containerImage: centos:8
'CentOS 7':
containerImage: centos:7
'Debian 11':
containerImage: mcr.microsoft.com/dotnet/sdk:6.0-bullseye-slim
'Ubuntu 20':
containerImage: mcr.microsoft.com/dotnet/sdk:6.0-focal
displayName: Linux
pool:
vmImage: 'ubuntu-latest'
container: $[ variables['containerImage'] ]
steps:
- task: UseDotNet@2
displayName: 'Install .NET 6'
inputs:
packageType: sdk
version: 6.0.402
version: 7.0.100-rc.2.22477.23
- task: NuGetAuthenticate@1
- script: ./publish.cmd Release
displayName: 'Build'

View file

@ -7,15 +7,15 @@ title: Creating a build
The server software must be built before it can be run.
=== "Windows"
Using _command prompt_, _git bash_, or _powershell_, run:
Using _windows terminal_, _git bash_, or _powershell_, run:
```bash
./publish.cmd <release|debug> <os>
./publish.cmd <release|debug> <os> <arch>
```
=== "OSX/Linux"
Using _terminal_, run:
```bash
./publish.sh <release|debug> <os>
./publish.sh <release|debug> <os> <arch>
```
<br><br>
`os` (_Optional_)<br>
@ -23,9 +23,11 @@ The operating system to build the server against. If not specified then the serv
:fontawesome-brands-windows:{: .windows } `win`<br>
:fontawesome-brands-apple:{: .apple } `osx`<br>
:fontawesome-brands-ubuntu:{: .ubuntu } `ubuntu.14.04` `ubuntu.16.04`, `ubuntu.18.04` `ubuntu.20.04`<br>
:brands-linuxmint:{: .linuxmint } `linuxmint.17` `linuxmint.18`, `linuxmint.19`, `ubuntu.20.04` for v20<br>
:brands-debian:{: .debian } `debian.9`, `debian.10`<br>
:fontawesome-brands-fedora:{: .fedora } `fedora.32`, `fedora.33`, `fedora.34`<br>
:fontawesome-brands-centos:{: .centos } `centos.7`, `centos.8`<br>
:fontawesome-brands-redhat:{: .redhat } `redhat.7`, `redhat.8`
:fontawesome-brands-linux:{: .linux } `linux`<br>
<br><br>
`arch` (_Optional_)<br>
The architecture to build the server against. If not specified then the server will be built for x64.
`x64`<br>
`arm64`<br>

View file

@ -6,15 +6,15 @@ title: Installation
=== "Windows"
### Prerequisites
1. Download and install the latest [.NET 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0)
1. Download and install the latest [.NET 7 SDK](https://dotnet.microsoft.com/download/dotnet/7.0)
1. Download and install from [here](https://git-scm.com/download/win)
!!! Tip
Use Git Bash as your command prompt. This can be found in the Windows Start Menu after installation.
Use [Windows Terminal](https://learn.microsoft.com/en-us/windows/terminal/install) as your command prompt.
### Install ModernUO
1. Navigate to the folder where you want to install ModernUO.
1. Using _Git Bash_ run:
1. Using _Windows Terminal_ run:
```bash
git clone https://github.com/modernuo/modernuo
cd modernuo
@ -22,7 +22,7 @@ title: Installation
=== "OSX"
### Prerequisites
1. Download and install the latest [.NET 6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0).
1. Download and install the latest [.NET 7 SDK](https://dotnet.microsoft.com/download/dotnet/7.0).
1. Using _terminal_, install [homebrew](https://brew.sh) and git:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
@ -37,7 +37,7 @@ title: Installation
=== "Linux"
### Prerequisites
1. Download and install the latest [.NET 6 SDK](https://docs.microsoft.com/en-us/dotnet/core/install/linux).
1. Download and install the latest [.NET 7 SDK](https://docs.microsoft.com/en-us/dotnet/core/install/linux).
1. Using _bash_, install git:
```bash
sudo apt update && sudo apt install git

View file

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1536" height="1792" viewBox="0 0 1536 1792" class="brands brands-debian">
<path d="M1.357 581.888c9.303-28.553 10.988-45.705 14.54-62.229-25.71 32.866-11.83 39.872-14.54 62.229m59.37-198.22c4.627 42.83-32.221 59.452 8.163 31.213 21.646-48.762-8.46-13.467-8.163-31.213M753.64 8.873C773.715 1.52 802.996 4.841 824.295 0c-27.76 2.33-55.388 3.718-82.669 7.237l12.013 1.636m645.108 799.408l-4.362 10.94c-7.998 56.808-25.265 113.022-51.736 165.139 29.247-54.992 48.167-115.139 56.098-176.079M582.402 985.715c-10.327-11.418-16.441-25.166-23.282-38.864 6.543 24.075 19.944 44.763 32.42 65.798l-9.138-26.934m-46.135 1.817l-4.164 20.82c19.515 26.505 34.998 55.223 59.916 75.944-17.928-34.998-31.247-49.456-55.752-96.764m737.295-213.29c1.768 48.019-14.045 71.317-28.305 112.56l-25.662 12.823c-21.001 40.781 2.033 25.893-13.004 58.33-32.783 29.148-99.49 91.211-120.839 96.879-15.582-.347 10.559-18.391 13.98-25.463-43.888 30.14-35.213 45.242-102.333 63.55l-1.966-4.362c-165.536 77.877-395.483-76.456-392.459-287.036-1.768 13.368-5.023 10.03-8.691 15.433-8.543-108.347 50.034-217.173 148.83-261.605 96.632-47.837 209.92-28.207 279.138 36.302-38.022-49.803-113.7-102.596-203.392-97.656C731 495.385 648.81 551.22 621.382 611.83c-45.011 28.339-50.233 109.24-69.847 124.045-26.388 193.94 49.638 277.733 178.243 376.298 20.242 13.648 5.701 15.714 8.444 26.107-42.73-20.01-81.86-50.216-114.031-87.196 17.07 24.984 35.493 49.274 59.304 68.36-40.285-13.65-94.103-97.624-109.818-101.044 69.45 124.342 281.765 218.065 392.938 171.567-51.439 1.9-116.79 1.058-174.591-20.308-24.274-12.492-57.288-38.368-51.39-43.21 151.723 56.677 308.452 42.93 439.734-62.311 33.394-26.009 69.88-70.26 80.421-70.871-15.88 23.877 2.71 11.484-9.484 32.569 33.279-53.67-14.459-21.845 34.402-92.683l18.044 24.852c-6.708-44.548 55.322-98.647 49.027-169.105 14.227-21.547 15.88 23.183.776 72.754 20.953-54.991 5.52-63.831 10.906-109.206 5.817 15.252 13.45 31.462 17.367 47.556-13.649-53.14 14.012-89.493 20.853-120.377-6.742-2.99-21.068 23.497-24.34-39.277.48-27.264 7.585-14.293 10.328-21.002-5.354-3.073-19.4-23.976-27.942-64.063 6.196-9.418 16.557 24.423 24.984 25.81-5.42-31.874-14.756-56.18-15.136-80.636-24.62-51.455-8.708 6.858-28.685-22.092-26.207-81.744 21.745-18.97 24.984-56.115 39.723 57.552 62.377 146.748 72.77 183.696-7.93-45.045-20.753-88.684-36.401-130.903 12.062 5.073-19.432-92.682 15.68-27.941-37.508-138.008-160.529-266.96-273.7-327.47 13.846 12.673 31.329 28.586 25.05 31.081-56.28-33.51-46.383-36.121-54.447-50.282-45.853-18.656-48.86 1.504-79.231.036-86.42-45.837-103.076-40.962-182.606-69.681l3.619 16.904c-57.255-19.069-66.707 7.237-128.589.066-3.767-2.941 19.829-10.641 39.244-13.467-55.354 7.304-52.76-10.906-106.925 2.016 13.35-9.369 27.462-15.565 41.706-23.53-45.143 2.743-107.769 26.273-88.436 4.875-73.63 32.85-204.4 78.967-277.783 147.773l-2.313-15.417c-33.626 40.368-146.633 120.558-155.638 172.84l-8.99 2.098c-17.498 29.627-28.817 63.204-42.697 93.69-22.886 38.997-33.543 15.004-30.288 21.118-45.011 91.26-67.368 167.948-86.684 230.836 13.764 20.573.33 123.847 5.535 206.5-22.605 408.205 286.49 804.546 624.354 896.055 49.522 17.714 123.17 17.036 185.811 18.854-73.911-21.134-83.462-11.203-155.456-36.303-51.935-24.455-63.32-52.38-100.102-84.305l14.558 25.728c-72.144-25.53-41.954-31.594-100.647-50.183l15.549-20.308c-23.381-1.768-61.932-39.41-72.474-60.246l-25.579 1.008c-30.734-37.922-47.11-65.253-45.92-86.42l-8.262 14.723c-9.369-16.078-113.072-142.22-59.27-112.858-9.998-9.138-23.283-14.871-37.692-41.045l10.956-12.525c-25.893-33.312-47.655-76.01-46.003-90.237 13.814 18.655 23.398 22.142 32.883 25.33-65.385-162.23-69.054-8.939-118.576-165.139l10.477-.842c-8.031-12.096-12.906-25.232-19.366-38.12l4.56-45.442c-47.076-54.43-13.17-231.433-6.378-328.51 4.71-39.476 39.294-81.496 65.6-147.393l-16.028-2.76c30.635-53.438 174.921-214.612 241.744-206.317 32.37-40.665-6.428-.149-12.757-10.393 71.102-73.581 93.46-51.984 141.445-65.22 51.752-30.718-44.417 11.98-19.879-11.716 89.46-22.852 63.402-51.95 180.11-63.55 12.31 7.006-28.57 10.823-38.83 19.911 74.539-36.468 235.878-28.173 340.672 20.242 121.6 56.825 258.218 224.807 263.605 382.858l6.13 1.652c-3.106 62.824 9.617 135.48-12.425 202.22l15.003-31.595M779.432 31.927l-11.203 2.314 10.427-.926.777-1.388m-31.66-8.807c15.846 2.842 34.237 5.023 31.66 8.807 17.333-3.8 21.266-7.303-31.66-8.807m330.791 730.85c3.586-53.47-10.526-36.567-15.268-16.16 5.536 2.876 9.914 37.691 15.268 16.16m-58.825 153.078c17.68-24.406 30.57-51.125 35.113-78.753-3.965 19.697-14.656 36.7-24.72 54.645-55.503 34.947-5.22-20.754-.036-41.922-59.684 75.118-8.195 45.045-10.36 66.03M860.363 946.77c-29.693.413 5.619 15.301 44.383 21.266a396.792 396.792 0 0 0 29.083-25.05c-24.142 5.916-48.713 6.048-73.466 3.784" overflow="visible"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

View file

@ -1 +0,0 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Linux Mint</title><path d="M0 1.693v4.193h1.828c1.276 0 1.502.865 1.502 2.058l.01 7.412c0 3.84 3.44 6.951 7.68 6.951h10.464c1.342 0 2.516-.83 2.516-2.108V8.706c0-3.84-3.44-6.95-7.683-6.95h-4.405v-.013L0 1.693zm5.723 2.566h2.102V14.82c0 1.413.984 2.51 2.139 2.51l7.17.03c1.496 0 2.661-1.01 2.661-2.206l-.012-5.607a1.2 1.2 0 0 0-.386-.91 1.224 1.224 0 0 0-.917-.384c-.374 0-.65.12-.918.384a1.2 1.2 0 0 0-.386.91v4.798h-2.223V9.548c0-.364-.124-.648-.389-.91a1.208 1.208 0 0 0-.917-.384c-.366 0-.647.12-.914.384-.265.262-.39.546-.39.91v4.798H10.12V9.548c0-.95.36-1.792 1.042-2.466a3.445 3.445 0 0 1 2.485-1.022c.937 0 1.752.345 2.413.97a3.448 3.448 0 0 1 2.42-.97c.954 0 1.803.348 2.485 1.022a3.385 3.385 0 0 1 1.041 2.466l.009 5.991c-.105 1.004-.539 1.894-1.28 2.637h-.002a4.367 4.367 0 0 1-3.174 1.314H9.574v-.038c-.976-.103-1.846-.519-2.57-1.217-.845-.825-1.281-1.846-1.281-3.01V4.26z"/></svg>

Before

Width:  |  Height:  |  Size: 970 B

View file

@ -52,7 +52,7 @@
{% include "partials/nav-item.html" %}
{% endfor %}
<li class="md-nav__item">
<a class="md-nav__link" href="https://discord.gg/DHkNUsq" target="_blank">
<a class="md-nav__link" href="https://muo.gg/discord" target="_blank">
<img src="https://img.shields.io/discord/751317910504603701?logo=discord&style=social" alt="Discord" />
</a>
<a class="md-nav__link" href="https://www.reddit.com/r/modernuo" target="_blank">

22
docs/starting-server.md Normal file
View file

@ -0,0 +1,22 @@
---
title: Starting the server
---
# Starting the server
Now that the software has been built, all you need to do is run it!
Everything is run from the _Distribution_ folder.
=== "Windows"
Using _windows terminal_, _git bash_, or _powershell_, run:
```bash
cd Distribution
ModernUO.exe
```
=== "OSX/Linux"
Using _terminal_, run:
```bash
cd Distribution
dotnet run ModernUO.dll
```

View file

@ -1,7 +1,7 @@
{
"sdk": {
"version": "6.0.400",
"version": "7.0.0",
"rollForward": "latestMajor",
"allowPrerelease": false
"allowPrerelease": true
}
}

View file

@ -72,6 +72,7 @@ nav:
- 'Get Started':
- 'installation.md'
- 'building-server.md'
- 'starting-server.md'
- 'Scripting guide':
- 'scripting-guide/timers.md'
- 'scripting-guide/serialization.md'

View file

@ -5,14 +5,14 @@ GOTO :CMDSCRIPT
::SHELLSCRIPT
config=$1
os=$2
arch=${3:-x64}
if [[ $os ]]; then
os="-r $os-x64"
if [[ -n $os ]]; then
os="-r $os"
elif [[ $(uname) = "Darwin" ]]; then
os="-r osx-x64"
elif [[ -f /etc/os-release ]]; then
. /etc/os-release
os="-r $(tr '[:upper:]' '[:lower:]' <<< $ID).$VERSION_ID-x64"
os="-r osx"
else
os="-r linux"
fi
if [[ $config ]]; then
@ -34,8 +34,8 @@ dotnet clean --verbosity quiet
echo dotnet restore --force-evaluate --source https://api.nuget.org/v3/index.json
dotnet restore --force-evaluate --source https://api.nuget.org/v3/index.json
echo dotnet publish ${config} ${os} --no-restore --self-contained=false -o Distribution/Assemblies Projects/UOContent/UOContent.csproj
dotnet publish ${config} ${os} --no-restore --self-contained=false -o Distribution/Assemblies Projects/UOContent/UOContent.csproj
echo dotnet publish ${config} ${os}-${arch} --no-restore --self-contained=false -o Distribution/Assemblies Projects/UOContent/UOContent.csproj
dotnet publish ${config} ${os}-${arch} --no-restore --self-contained=false -o Distribution/Assemblies Projects/UOContent/UOContent.csproj
echo Generating serialization migration schema...
dotnet tool run ModernUOSchemaGenerator -- ModernUO.sln
@ -55,9 +55,15 @@ IF "%~1" == "" (
)
IF "%~2" == "" (
SET os=-r win-x64
SET os=-r win
) ELSE (
SET os=-r %~2-x64
SET os=-r %~2
)
IF "%~3" == "" (
SET arch=x64
) ELSE (
SET arch=%~3
)
echo dotnet tool restore
@ -68,8 +74,8 @@ dotnet clean --verbosity quiet
echo dotnet restore --force-evaluate --source https://api.nuget.org/v3/index.json
dotnet restore --force-evaluate --source https://api.nuget.org/v3/index.json
echo dotnet publish %config% %os% --no-restore --self-contained=false -o Distribution\Assemblies Projects\UOContent\UOContent.csproj
dotnet publish %config% %os% --no-restore --self-contained=false -o Distribution\Assemblies Projects\UOContent\UOContent.csproj
echo dotnet publish %config% %os%-%arch% --no-restore --self-contained=false -o Distribution\Assemblies Projects\UOContent\UOContent.csproj
dotnet publish %config% %os%-%arch% --no-restore --self-contained=false -o Distribution\Assemblies Projects\UOContent\UOContent.csproj
echo Generating serialization migration schema...
dotnet tool run ModernUOSchemaGenerator -- ModernUO.sln

View file

@ -1 +1,2 @@
#!/bin/bash
./publish.cmd "$@"

View file

@ -1,4 +1,4 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
"version": "0.9.5"
"version": "0.9.6"
}