@joebigelow / wix-1 / commits / 7a6445dd

Support platform specific directory id names

Rob Mensching committed Jul 21, 2020 at 14:21 UTC 7a6445ddf8d67c1308c0e3f20bf7470cc9baf61c
1 file changed +25
src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs
+25
@@ -421,6 +421,31 @@ namespace WixToolset.Data.WindowsInstaller
421 /// </summary>
422 public static IEnumerable<DirectorySymbol> StandardDirectories() => standardDirectoriesById.Values;
423
424 + /// <summary>
425 + /// Gets the platform specific directory id for a directory. Most directories are not platform
426 + /// specific and return themselves.
427 + /// </summary>
428 + /// <param name="directoryId">Directory id to get platform specific.</param>
429 + /// <param name="platform">Platform to use.</param>
430 + /// <returns>Platform specific directory id.</returns>
431 + public static string GetPlatformSpecificDirectoryId(string directoryId, Platform platform)
432 + {
433 + switch (directoryId)
434 + {
435 + case "CommonFiles6432Folder":
436 + return platform == Platform.X86 || platform == Platform.ARM ? "CommonFilesFolder" : "CommonFiles64Folder";
437 +
438 + case "ProgramFiles6432Folder":
439 + return platform == Platform.X86 || platform == Platform.ARM ? "ProgramFilesFolder" : "ProgramFiles64Folder";
440 +
441 + case "System6432Folder":
442 + return platform == Platform.X86 || platform == Platform.ARM ? "SystemFolder" : "System64Folder";
443 +
444 + default:
445 + return directoryId;
446 + }
447 + }
448 +
449 /// <summary>
450 /// Find out if a directory is a standard directory.
451 /// </summary>