瀏覽代碼

[macOS, .NET] Fix dotnet binary detection.

bruvzg 3 年之前
父節點
當前提交
f4f556d198
共有 1 個文件被更改,包括 18 次插入0 次删除
  1. 18 0
      modules/mono/editor/GodotTools/GodotTools/Build/DotNetFinder.cs

+ 18 - 0
modules/mono/editor/GodotTools/GodotTools/Build/DotNetFinder.cs

@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.Diagnostics.CodeAnalysis;
 using System.IO;
+using System.Runtime.InteropServices;
 using JetBrains.Annotations;
 using OS = GodotTools.Utils.OS;
 
@@ -16,6 +17,23 @@ namespace GodotTools.Build
             // In the future, this method may do more than just search in PATH. We could look in
             // known locations or use Godot's linked nethost to search from the hostfxr location.
 
+            if (OS.IsMacOS)
+            {
+                if (RuntimeInformation.OSArchitecture == Architecture.X64)
+                {
+                    string dotnet_x64 = "/usr/local/share/dotnet/x64/dotnet"; // Look for x64 version, when running under Rosetta 2.
+                    if (File.Exists(dotnet_x64))
+                    {
+                        return dotnet_x64;
+                    }
+                }
+                string dotnet = "/usr/local/share/dotnet/dotnet"; // Look for native version.
+                if (File.Exists(dotnet))
+                {
+                    return dotnet;
+                }
+            }
+
             return OS.PathWhich("dotnet");
         }