From 7a6445ddf8d67c1308c0e3f20bf7470cc9baf61c Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 21 Jul 2020 14:21:30 -0700 Subject: Support platform specific directory id names --- .../WindowsInstaller/WindowsInstallerStandard.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src') diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 0b40336b..74790915 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs @@ -421,6 +421,31 @@ namespace WixToolset.Data.WindowsInstaller /// public static IEnumerable StandardDirectories() => standardDirectoriesById.Values; + /// + /// Gets the platform specific directory id for a directory. Most directories are not platform + /// specific and return themselves. + /// + /// Directory id to get platform specific. + /// Platform to use. + /// Platform specific directory id. + public static string GetPlatformSpecificDirectoryId(string directoryId, Platform platform) + { + switch (directoryId) + { + case "CommonFiles6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "CommonFilesFolder" : "CommonFiles64Folder"; + + case "ProgramFiles6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "ProgramFilesFolder" : "ProgramFiles64Folder"; + + case "System6432Folder": + return platform == Platform.X86 || platform == Platform.ARM ? "SystemFolder" : "System64Folder"; + + default: + return directoryId; + } + } + /// /// Find out if a directory is a standard directory. /// -- cgit v1.2.3-55-g6feb