Browse Source

C#: Allow use of .NET 7

The editor will use .NET 7 if it is installed and fall back to .NET 6 otherwise.
Exported projects will use .NET 7 or .NET 6 depending on the value of TargetFramework in the csproj.
RedworkDE 2 years ago
parent
commit
3f1241cb82

+ 1 - 0
modules/mono/glue/GodotSharp/GodotPlugins/GodotPlugins.csproj

@@ -8,6 +8,7 @@
 
         <!-- To generate the .runtimeconfig.json file-->
         <EnableDynamicLoading>true</EnableDynamicLoading>
+        <RollForward>LatestMajor</RollForward>
     </PropertyGroup>
 
     <ItemGroup>

+ 3 - 3
modules/mono/glue/GodotSharp/GodotSharp/Core/NativeInterop/InteropStructs.cs

@@ -104,7 +104,7 @@ namespace Godot.NativeInterop
         }
     }
 
-    [StructLayout(LayoutKind.Explicit)]
+    [StructLayout(LayoutKind.Sequential, Pack = 8)]
     // ReSharper disable once InconsistentNaming
     public ref struct godot_variant
     {
@@ -113,11 +113,11 @@ namespace Godot.NativeInterop
             => (godot_variant*)Unsafe.AsPointer(ref Unsafe.AsRef(in _typeField));
 
         // Variant.Type is generated as an enum of type long, so we can't use for the field as it must only take 32-bits.
-        [FieldOffset(0)] private int _typeField;
+        private int _typeField;
 
         // There's padding here
 
-        [FieldOffset(8)] private godot_variant_data _data;
+        private godot_variant_data _data;
 
         [StructLayout(LayoutKind.Explicit)]
         // ReSharper disable once InconsistentNaming