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 '')
-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 | } |