Skip to content

Commit 7c3e1cc

Browse files
authored
Upgraded projects to C# 9 (SubnauticaNitrox#1325)
* Updated projects to use C# 9 * Added IsExternalInit.cs so that C# 9 record types can be used * Use .netstandard2.0 automatically for libraries that don't have it defined * Build fix attempt * Fixed Newtonsoft.Json dependency being misconfigured * Added serilog settings to packages again * Updated DotNetZip package
1 parent 9834472 commit 7c3e1cc

9 files changed

Lines changed: 34 additions & 63 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<!-- Set default properties for all projects (can be overridden per project) -->
44
<PropertyGroup>
55
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
6-
<LangVersion>8</LangVersion>
6+
<LangVersion>9</LangVersion>
77
<TestLibrary>false</TestLibrary>
88
<NitroxLibrary>false</NitroxLibrary>
99
<UnityModLibrary>false</UnityModLibrary>

Directory.Build.targets

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<Import Project="$(SolutionDir)SharedConfig.targets"/>
44

5+
<!-- Target .netstandard for libraries if not set yet to use more advanced features from C# 9 -->
6+
<PropertyGroup Condition="'$(TargetFramework)' == '' and '$(OutputType)' == 'Library'">
7+
<TargetFramework>.netstandard2.0</TargetFramework>
8+
</PropertyGroup>
9+
510
<Choose>
611
<When Condition="'$(UnityModLibrary)' == 'true' or '$(TestLibrary)' == 'true'">
712
<!-- UnityEngine libraries to include -->
@@ -267,4 +272,4 @@
267272
</ItemGroup>
268273
</When>
269274
</Choose>
270-
</Project>
275+
</Project>

NitroxModel/IsExternalInit.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// ReSharper disable once CheckNamespace
2+
3+
namespace System.Runtime.CompilerServices
4+
{
5+
/// <summary>
6+
/// Having this class allows us to use C# 9 record types.
7+
/// </summary>
8+
public class IsExternalInit
9+
{
10+
}
11+
}

NitroxModel/NitroxModel.csproj

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -33,46 +33,6 @@
3333
<HintPath>..\Nitrox.Subnautica.Assets\LZ4.dll</HintPath>
3434
</Reference>
3535
<Reference Include="Microsoft.CSharp" />
36-
<Reference Include="Microsoft.DotNet.PlatformAbstractions, Version=2.0.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
37-
<HintPath>..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.4\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll</HintPath>
38-
<Private>True</Private>
39-
</Reference>
40-
<Reference Include="Microsoft.Extensions.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
41-
<HintPath>..\packages\Microsoft.Extensions.Configuration.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
42-
<Private>True</Private>
43-
</Reference>
44-
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
45-
<HintPath>..\packages\Microsoft.Extensions.Configuration.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
46-
<Private>True</Private>
47-
</Reference>
48-
<Reference Include="Microsoft.Extensions.Configuration.Binder, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
49-
<HintPath>..\packages\Microsoft.Extensions.Configuration.Binder.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
50-
<Private>True</Private>
51-
</Reference>
52-
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
53-
<HintPath>..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
54-
<Private>True</Private>
55-
</Reference>
56-
<Reference Include="Microsoft.Extensions.DependencyModel, Version=2.0.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
57-
<HintPath>..\packages\Microsoft.Extensions.DependencyModel.2.0.4\lib\net451\Microsoft.Extensions.DependencyModel.dll</HintPath>
58-
<Private>True</Private>
59-
</Reference>
60-
<Reference Include="Microsoft.Extensions.Options, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
61-
<HintPath>..\packages\Microsoft.Extensions.Options.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
62-
<Private>True</Private>
63-
</Reference>
64-
<Reference Include="Microsoft.Extensions.Options.ConfigurationExtensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
65-
<HintPath>..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll</HintPath>
66-
<Private>True</Private>
67-
</Reference>
68-
<Reference Include="Microsoft.Extensions.Primitives, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
69-
<HintPath>..\packages\Microsoft.Extensions.Primitives.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
70-
<Private>True</Private>
71-
</Reference>
72-
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
73-
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
74-
<Private>True</Private>
75-
</Reference>
7636
<Reference Include="protobuf-net">
7737
<HintPath>..\Nitrox.Subnautica.Assets\protobuf-net.dll</HintPath>
7838
</Reference>
@@ -170,6 +130,7 @@
170130
<Compile Include="Helper\PirateDetection.cs" />
171131
<Compile Include="Helper\StringHelper.cs" />
172132
<Compile Include="Helper\WebHelper.cs" />
133+
<Compile Include="IsExternalInit.cs" />
173134
<Compile Include="Logger\ColoredConsoleSink.cs" />
174135
<Compile Include="Logger\InGameLogger.cs" />
175136
<Compile Include="Logger\MessageSink.cs" />
@@ -303,5 +264,13 @@
303264
<Folder Include="OS\MacOS\" />
304265
<Folder Include="OS\Unix\" />
305266
</ItemGroup>
267+
<ItemGroup>
268+
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
269+
<PackageReference Include="Serilog" Version="2.10.0" />
270+
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
271+
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
272+
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
273+
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
274+
</ItemGroup>
306275
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
307-
</Project>
276+
</Project>

NitroxModel/packages.config

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Autofac" version="4.9.4" targetFramework="net472" />
4-
<package id="Microsoft.DotNet.PlatformAbstractions" version="2.0.4" targetFramework="net472" />
5-
<package id="Microsoft.Extensions.Configuration" version="2.0.0" targetFramework="net472" />
6-
<package id="Microsoft.Extensions.Configuration.Abstractions" version="2.0.0" targetFramework="net472" />
7-
<package id="Microsoft.Extensions.Configuration.Binder" version="2.0.0" targetFramework="net472" />
8-
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.0.0" targetFramework="net472" />
9-
<package id="Microsoft.Extensions.DependencyModel" version="2.0.4" targetFramework="net472" />
10-
<package id="Microsoft.Extensions.Options" version="2.0.0" targetFramework="net472" />
11-
<package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="2.0.0" targetFramework="net472" />
12-
<package id="Microsoft.Extensions.Primitives" version="2.0.0" targetFramework="net472" />
13-
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net472" />
144
<package id="Serilog" version="2.10.0" targetFramework="net472" />
155
<package id="Serilog.Settings.Configuration" version="3.1.0" targetFramework="net472" />
166
<package id="Serilog.Sinks.Async" version="1.4.0" targetFramework="net472" />
177
<package id="Serilog.Sinks.Console" version="3.1.1" targetFramework="net472" />
188
<package id="Serilog.Sinks.File" version="4.1.0" targetFramework="net472" />
199
<package id="System.Runtime.CompilerServices.Unsafe" version="4.4.0" targetFramework="net472" />
20-
</packages>
10+
</packages>

NitroxServer-Subnautica/NitroxServer-Subnautica.csproj

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@
4949
<Reference Include="Mono.Cecil.Rocks, Version=0.11.3.0, Culture=neutral, PublicKeyToken=50cebf1cceb9d05e, processorArchitecture=MSIL">
5050
<HintPath>..\packages\Mono.Cecil.0.11.3\lib\net40\Mono.Cecil.Rocks.dll</HintPath>
5151
</Reference>
52-
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
53-
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
54-
</Reference>
5552
<Reference Include="protobuf-net">
5653
<HintPath>..\Nitrox.Subnautica.Assets\protobuf-net.dll</HintPath>
5754
</Reference>

NitroxServer-Subnautica/packages.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
<package id="AssetsTools.NET" version="2.0.5" targetFramework="net472" />
44
<package id="Autofac" version="4.9.4" targetFramework="net472" />
55
<package id="Mono.Cecil" version="0.11.3" targetFramework="net472" />
6-
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
76
</packages>

NitroxServer/NitroxServer.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@
5353
<Reference Include="Autofac, Version=4.9.4.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
5454
<HintPath>..\packages\Autofac.4.9.4\lib\net45\Autofac.dll</HintPath>
5555
</Reference>
56-
<Reference Include="DotNetZip, Version=1.13.8.0, Culture=neutral, PublicKeyToken=6583c7c814667745, processorArchitecture=MSIL">
57-
<HintPath>..\packages\DotNetZip.1.13.8\lib\net40\DotNetZip.dll</HintPath>
58-
</Reference>
5956
<Reference Include="Microsoft.CSharp" />
6057
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
6158
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
@@ -248,5 +245,9 @@
248245
<Install>false</Install>
249246
</BootstrapperPackage>
250247
</ItemGroup>
248+
<ItemGroup>
249+
<PackageReference Include="DotNetZip" Version="1.15.0" />
250+
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
251+
</ItemGroup>
251252
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
252253
</Project>

NitroxServer/packages.config

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
33
<package id="Autofac" version="4.9.4" targetFramework="net472" />
4-
<package id="DotNetZip" version="1.13.8" targetFramework="net40" />
54
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net472" />
6-
</packages>
5+
</packages>

0 commit comments

Comments
 (0)