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>