Fix DOTNET_ROOT path ignored on Windows

This commit is contained in:
2025-04-06 12:57:35 +03:00
parent e6d7024a61
commit 8322e762df

View File

@@ -211,13 +211,16 @@ namespace Flax.Build
rid = $"win-{arch}"; rid = $"win-{arch}";
ridFallback = ""; ridFallback = "";
#pragma warning disable CA1416 #pragma warning disable CA1416
using RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); if (string.IsNullOrEmpty(dotnetPath))
using RegistryKey sdkVersionsKey = baseKey.OpenSubKey($@"SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\{arch}\sdk"); {
using RegistryKey runtimeKey = baseKey.OpenSubKey(@$"SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\{arch}\sharedfx\Microsoft.NETCore.App"); using RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
using RegistryKey hostKey = baseKey.OpenSubKey(@$"SOFTWARE\dotnet\Setup\InstalledVersions\{arch}\sharedhost"); using RegistryKey sdkVersionsKey = baseKey.OpenSubKey($@"SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\{arch}\sdk");
dotnetPath = (string)hostKey.GetValue("Path"); using RegistryKey runtimeKey = baseKey.OpenSubKey(@$"SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\{arch}\sharedfx\Microsoft.NETCore.App");
dotnetSdkVersions = sdkVersionsKey.GetValueNames(); using RegistryKey hostKey = baseKey.OpenSubKey(@$"SOFTWARE\dotnet\Setup\InstalledVersions\{arch}\sharedhost");
dotnetRuntimeVersions = runtimeKey.GetValueNames(); dotnetPath = (string)hostKey.GetValue("Path");
dotnetSdkVersions = sdkVersionsKey.GetValueNames();
dotnetRuntimeVersions = runtimeKey.GetValueNames();
}
#pragma warning restore CA1416 #pragma warning restore CA1416
break; break;
} }