From 2f593569c241159f5e685f659f30b2da30141234 Mon Sep 17 00:00:00 2001 From: Sergey Shakhnazarov Date: Mon, 8 Jul 2019 17:10:27 +0300 Subject: [PATCH] Fixed programfiles64 path for 32-bit apps Use new ProgramW6432 envar if available so that both Prefer32Bit=false and Prefer32Bit=true apps could get the path. Otherwise Environment.SpecialFolder.ProgramFiles returns `"C:\\Program Files (x86)"` for 32-bit apps on 64-bit OS. --- .../Sdks/AndroidSdkWindows.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkWindows.cs b/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkWindows.cs index 9ee716f..3c63aa8 100644 --- a/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkWindows.cs +++ b/src/Xamarin.Android.Tools.AndroidSdk/Sdks/AndroidSdkWindows.cs @@ -93,7 +93,9 @@ protected override IEnumerable GetAllAvailableAndroidSdks () Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData), "Xamarin", "MonoAndroid", "android-sdk-windows"), Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86), "Android", "android-sdk"), Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFilesX86), "Android", "android-sdk-windows"), - Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFiles), "Android", "android-sdk"), + !string.IsNullOrEmpty (Environment.GetEnvironmentVariable ("ProgramW6432")) + ? Path.Combine (Environment.GetEnvironmentVariable ("ProgramW6432"), "Android", "android-sdk") + : Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.ProgramFiles), "Android", "android-sdk"), Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData), "Android", "android-sdk"), Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData), "Android", "android-sdk"), @"C:\android-sdk-windows"