diff options
| author | Rob Mensching <rob@firegiant.com> | 2020-07-21 14:20:55 -0700 |
|---|---|---|
| committer | Rob Mensching <rob@firegiant.com> | 2020-07-21 14:33:33 -0700 |
| commit | 832f4a076dbb9290a90057ccd98ba73288ac90f8 (patch) | |
| tree | 547305c9c047f13f93947632bf527756caa18bbe /src | |
| parent | 35d08c1563f69a1e0bfa47823f82d27120885b94 (diff) | |
| download | wix-832f4a076dbb9290a90057ccd98ba73288ac90f8.tar.gz wix-832f4a076dbb9290a90057ccd98ba73288ac90f8.tar.bz2 wix-832f4a076dbb9290a90057ccd98ba73288ac90f8.zip | |
Introduce symbols for standard directories
Diffstat (limited to 'src')
| -rw-r--r-- | src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | 83 |
1 files changed, 49 insertions, 34 deletions
diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index c3cde117..0b40336b 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | |||
| @@ -11,38 +11,7 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 11 | { | 11 | { |
| 12 | private static readonly Dictionary<string, WixActionSymbol> standardActionsById; | 12 | private static readonly Dictionary<string, WixActionSymbol> standardActionsById; |
| 13 | private static readonly HashSet<string> standardActionNames; | 13 | private static readonly HashSet<string> standardActionNames; |
| 14 | 14 | private static readonly Dictionary<string, DirectorySymbol> standardDirectoriesById; | |
| 15 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | ||
| 16 | { | ||
| 17 | "TARGETDIR", | ||
| 18 | "AdminToolsFolder", | ||
| 19 | "AppDataFolder", | ||
| 20 | "CommonAppDataFolder", | ||
| 21 | "CommonFilesFolder", | ||
| 22 | "DesktopFolder", | ||
| 23 | "FavoritesFolder", | ||
| 24 | "FontsFolder", | ||
| 25 | "LocalAppDataFolder", | ||
| 26 | "MyPicturesFolder", | ||
| 27 | "PersonalFolder", | ||
| 28 | "ProgramFilesFolder", | ||
| 29 | "ProgramMenuFolder", | ||
| 30 | "SendToFolder", | ||
| 31 | "StartMenuFolder", | ||
| 32 | "StartupFolder", | ||
| 33 | "System16Folder", | ||
| 34 | "SystemFolder", | ||
| 35 | "TempFolder", | ||
| 36 | "TemplateFolder", | ||
| 37 | "WindowsFolder", | ||
| 38 | "CommonFiles64Folder", | ||
| 39 | "ProgramFiles64Folder", | ||
| 40 | "System64Folder", | ||
| 41 | "NetHoodFolder", | ||
| 42 | "PrintHoodFolder", | ||
| 43 | "RecentFolder", | ||
| 44 | "WindowsVolume", | ||
| 45 | }; | ||
| 46 | 15 | ||
| 47 | /// <summary> | 16 | /// <summary> |
| 48 | /// References: | 17 | /// References: |
| @@ -395,8 +364,44 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 395 | new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | 364 | new WixActionSymbol(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, |
| 396 | }; | 365 | }; |
| 397 | 366 | ||
| 367 | var standardDirectories = new[] | ||
| 368 | { | ||
| 369 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TARGETDIR")) { Name = "SourceDir" }, | ||
| 370 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AdminToolsFolder")) { Name = "Admin" }, | ||
| 371 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "AppDataFolder")) { Name = "AppData" }, | ||
| 372 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonAppDataFolder")) { Name = "CommApp" }, | ||
| 373 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFilesFolder")) { Name = "CFiles" }, | ||
| 374 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles64Folder")) { Name = "CFiles64" }, | ||
| 375 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "CommonFiles6432Folder")) { Name = "." }, | ||
| 376 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "DesktopFolder")) { Name = "Desktop" }, | ||
| 377 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FavoritesFolder")) { Name = "Favs" }, | ||
| 378 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "FontsFolder")) { Name = "Fonts" }, | ||
| 379 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "LocalAppDataFolder")) { Name = "LocalApp" }, | ||
| 380 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "MyPicturesFolder")) { Name = "Pictures" }, | ||
| 381 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "NetHoodFolder")) { Name = "NetHood" }, | ||
| 382 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PersonalFolder")) { Name = "Personal" }, | ||
| 383 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "PrintHoodFolder")) { Name = "Printers" }, | ||
| 384 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFilesFolder")) { Name = "PFiles" }, | ||
| 385 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles64Folder")) { Name = "PFiles64" }, | ||
| 386 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramFiles6432Folder")) { Name = "." }, | ||
| 387 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "ProgramMenuFolder")) { Name = "PMenu" }, | ||
| 388 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "RecentFolder")) { Name = "Recent" }, | ||
| 389 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SendToFolder")) { Name = "SendTo" }, | ||
| 390 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartMenuFolder")) { Name = "StrtMenu" }, | ||
| 391 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "StartupFolder")) { Name = "StartUp" }, | ||
| 392 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "SystemFolder")) { Name = "System" }, | ||
| 393 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System16Folder")) { Name = "System16" }, | ||
| 394 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System64Folder")) { Name = "System64" }, | ||
| 395 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "System6432Folder")) { Name = "." }, | ||
| 396 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TempFolder")) { Name = "Temp" }, | ||
| 397 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "TemplateFolder")) { Name = "Template" }, | ||
| 398 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsFolder")) { Name = "Windows" }, | ||
| 399 | new DirectorySymbol(null, new Identifier(AccessModifier.Public, "WindowsVolume")) { Name = "WinVol" }, | ||
| 400 | }; | ||
| 401 | |||
| 398 | standardActionNames = new HashSet<string>(standardActions.Select(a => a.Action)); | 402 | standardActionNames = new HashSet<string>(standardActions.Select(a => a.Action)); |
| 399 | standardActionsById = standardActions.ToDictionary(a => a.Id.Id); | 403 | standardActionsById = standardActions.ToDictionary(a => a.Id.Id); |
| 404 | standardDirectoriesById = standardDirectories.ToDictionary(d => d.Id.Id); | ||
| 400 | } | 405 | } |
| 401 | 406 | ||
| 402 | /// <summary> | 407 | /// <summary> |
| @@ -412,11 +417,16 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 412 | public static IEnumerable<WixActionSymbol> StandardActions() => standardActionsById.Values; | 417 | public static IEnumerable<WixActionSymbol> StandardActions() => standardActionsById.Values; |
| 413 | 418 | ||
| 414 | /// <summary> | 419 | /// <summary> |
| 420 | /// Standard directories. | ||
| 421 | /// </summary> | ||
| 422 | public static IEnumerable<DirectorySymbol> StandardDirectories() => standardDirectoriesById.Values; | ||
| 423 | |||
| 424 | /// <summary> | ||
| 415 | /// Find out if a directory is a standard directory. | 425 | /// Find out if a directory is a standard directory. |
| 416 | /// </summary> | 426 | /// </summary> |
| 417 | /// <param name="directoryName">Name of the directory.</param> | 427 | /// <param name="directoryId">Name of the directory.</param> |
| 418 | /// <returns>true if the directory is standard, false otherwise.</returns> | 428 | /// <returns>true if the directory is standard, false otherwise.</returns> |
| 419 | public static bool IsStandardDirectory(string directoryName) => standardDirectories.Contains(directoryName); | 429 | public static bool IsStandardDirectory(string directoryId) => standardDirectoriesById.ContainsKey(directoryId); |
| 420 | 430 | ||
| 421 | /// <summary> | 431 | /// <summary> |
| 422 | /// Find out if a property is a standard property. | 432 | /// Find out if a property is a standard property. |
| @@ -434,5 +444,10 @@ namespace WixToolset.Data.WindowsInstaller | |||
| 434 | /// Try to get standard action by sequence and action name. | 444 | /// Try to get standard action by sequence and action name. |
| 435 | /// </summary> | 445 | /// </summary> |
| 436 | public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); | 446 | public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionSymbol standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); |
| 447 | |||
| 448 | /// <summary> | ||
| 449 | /// Try to get standard directory symbol by id. | ||
| 450 | /// </summary> | ||
| 451 | public static bool TryGetStandardDirectory(string directoryId, out DirectorySymbol symbol) => standardDirectoriesById.TryGetValue(directoryId, out symbol); | ||
| 437 | } | 452 | } |
| 438 | } | 453 | } |
