mirror of
https://github.com/sp-tarkov/modules.git
synced 2025-02-13 02:10:45 -05:00
[critical] Fix .NET Framework version (!42)
## Preface The current version of Aki uses .NET Framework 4.7.2, C# 7.3. However, this is not correct. Unity 2019.4.31f uses .NET Framework 4.7.1, C# 7.0 (you can see this when creating a new blank project in this unity version, then check the Assembly-CSharp.csproj). You can load netstandard2.0 assemblies into EFT, which support C# 7.3. ## The issue .NET Core 2.1 support types like `Span<T>` and `ReadOnlySpan<T>` which previous versions of .NET (.NET Core 2.0 / .NET Framework 4.8.1 and below, C# 7.1 and below) need to support through the `System.Memory` nuget package. Right now, this conflicts. If you attempt to load an assembly like this, EFT will simply crash because `Span<T>` and `ReadOnlySpan<T>` do not exist inside mono's `mscorlib`. ## Why fix this This is important for a variety of reasons: - Prevent modders from accessing not available APIs leading to unexpected crashes - Prevent possible compatability issues with EFT later - Support for `Span<T>` and `ReadOnlySpan<T>` through `System.Memory` which is important for high-performance code and client mods (one of which I'm working on). I really want to stress that this is an important issue to fix and should be merged ASAP. Unity 2019.4 being lax doesn't mean the next LTS version won't prevent loading. ## Why was the wrong version in the first place? It was a best guess made by me 2 years ago. There were more pressing issues back then and it didn't crash on me. It started becoming an issue 1 year ago when I tried to port Aki to C#, because self-signed certificate generation is supported only within 4.7.2 and newer. For reference: https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.certificaterequest.createselfsigned?view=netframework-4.7.2 ## What's affected? All the `.csproj` files in this repo. Merging this means that some mods might need to retarget from .NET Framework 4.7.2 to 4.7.1. Co-authored-by: Dev <dev@dev.sp-tarkov.com> Co-authored-by: Terkoiz <terkoiz@spt.dev> Co-authored-by: Terkoiz <terkoiz@noreply.dev.sp-tarkov.com> Co-authored-by: DanW <danw@noreply.dev.sp-tarkov.com> Co-authored-by: Merijn Hendriks <merijn.d.hendriks@gmail.com> Reviewed-on: SPT-AKI/Modules#42 Co-authored-by: Merijn Hendriks <senko-san@noreply.dev.sp-tarkov.com> Co-committed-by: Merijn Hendriks <senko-san@noreply.dev.sp-tarkov.com>
This commit is contained in:
parent
e91bf951d2
commit
820619b0dc
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<Version>1.0.0.0</Version>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
<AssemblyName>aki-core</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
<AssemblyName>aki-custom</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
<AssemblyName>aki-debugging</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
<AssemblyName>aki_PrePatch</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<TargetFramework>net471</TargetFramework>
|
||||
<AssemblyName>aki-singleplayer</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -68,7 +68,7 @@ Task("CopyBuildData")
|
||||
CreateDirectory(bepInExPatchersFolder);
|
||||
CopyFile(licenseFile, string.Format("{0}/LICENSE-Modules.txt", buildDir));
|
||||
})
|
||||
.DoesForEach(GetFiles("./Aki.*/bin/Release/net472/*.dll"), (dllPath) => //copy modules
|
||||
.DoesForEach(GetFiles("./Aki.*/bin/Release/net471/*.dll"), (dllPath) => //copy modules
|
||||
{
|
||||
if(dllPath.GetFilename().ToString().StartsWith("aki_"))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user