Przeglądaj źródła

Merge pull request #110263 from raulsntos/dotnet/android-net9.0

[.NET] Require `net9.0` for Android exports
Thaddeus Crews 5 dni temu
rodzic
commit
4ed8c45abd

+ 4 - 0
modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs

@@ -26,6 +26,10 @@ namespace GodotTools.ProjectEditor
             var mainGroup = root.AddPropertyGroup();
             mainGroup.AddProperty("TargetFramework", GodotMinimumRequiredTfm);
 
+            // Non-gradle builds require .NET 9 to match the jar libraries included in the export template.
+            var net9 = mainGroup.AddProperty("TargetFramework", "net9.0");
+            net9.Condition = " '$(GodotTargetPlatform)' == 'android' ";
+
             mainGroup.AddProperty("EnableDynamicLoading", "true");
 
             string sanitizedName = IdentifierUtils.SanitizeQualifiedIdentifier(name, allowEmptyIdentifiers: true);

BIN
modules/mono/thirdparty/libSystem.Security.Cryptography.Native.Android.jar


+ 1 - 0
modules/mono/thirdparty/libSystem.Security.Cryptography.Native.Android.jar.source.txt

@@ -0,0 +1 @@
+https://www.nuget.org/packages/Microsoft.NETCore.App.Runtime.Mono.android-arm64/9.0.4

+ 4 - 3
platform/android/export/export_plugin.cpp

@@ -2739,6 +2739,7 @@ bool _validate_dotnet_tfm(const String &required_tfm, String &r_error) {
 		List<String> args;
 		args.push_back("build");
 		args.push_back(project_path);
+		args.push_back("/p:GodotTargetPlatform=android");
 		args.push_back("--getProperty:TargetFramework");
 
 		int exitcode;
@@ -2778,9 +2779,9 @@ bool EditorExportPlatformAndroid::has_valid_export_configuration(const Ref<Edito
 	err += TTR("Exporting to Android when using C#/.NET is experimental.") + "\n";
 
 	if (!gradle_build_enabled) {
-		// For template exports we only support .NET 8 because the template
-		// includes .jar dependencies that may only be compatible with .NET 8.
-		if (!_validate_dotnet_tfm("net8.0", err)) {
+		// For template exports we only support .NET 9 because the template
+		// includes .jar dependencies that may only be compatible with .NET 9.
+		if (!_validate_dotnet_tfm("net9.0", err)) {
 			r_error = err;
 			return false;
 		}