diff options
Diffstat (limited to 'src/WixToolset.Core/WindowsInstallerStandard.cs')
| -rw-r--r-- | src/WixToolset.Core/WindowsInstallerStandard.cs | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/src/WixToolset.Core/WindowsInstallerStandard.cs b/src/WixToolset.Core/WindowsInstallerStandard.cs new file mode 100644 index 00000000..90a53e6a --- /dev/null +++ b/src/WixToolset.Core/WindowsInstallerStandard.cs | |||
| @@ -0,0 +1,260 @@ | |||
| 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | ||
| 2 | |||
| 3 | namespace WixToolset.Core | ||
| 4 | { | ||
| 5 | using System.Collections.Generic; | ||
| 6 | using WixToolset.Data; | ||
| 7 | using WixToolset.Data.Tuples; | ||
| 8 | |||
| 9 | internal class WindowsInstallerStandard | ||
| 10 | { | ||
| 11 | private static readonly HashSet<string> standardActionNames = new HashSet<string> | ||
| 12 | { | ||
| 13 | "AllocateRegistrySpace", | ||
| 14 | "AppSearch", | ||
| 15 | "BindImage", | ||
| 16 | "CCPSearch", | ||
| 17 | "CostFinalize", | ||
| 18 | "CostInitialize", | ||
| 19 | "CreateFolders", | ||
| 20 | "CreateShortcuts", | ||
| 21 | "DeleteServices", | ||
| 22 | "DisableRollback", | ||
| 23 | "DuplicateFiles", | ||
| 24 | "ExecuteAction", | ||
| 25 | "FileCost", | ||
| 26 | "FindRelatedProducts", | ||
| 27 | "ForceReboot", | ||
| 28 | "InstallAdminPackage", | ||
| 29 | "InstallExecute", | ||
| 30 | "InstallExecuteAgain", | ||
| 31 | "InstallFiles", | ||
| 32 | "InstallFinalize", | ||
| 33 | "InstallInitialize", | ||
| 34 | "InstallODBC", | ||
| 35 | "InstallServices", | ||
| 36 | "InstallSFPCatalogFile", | ||
| 37 | "InstallValidate", | ||
| 38 | "IsolateComponents", | ||
| 39 | "LaunchConditions", | ||
| 40 | "MigrateFeatureStates", | ||
| 41 | "MoveFiles", | ||
| 42 | "MsiConfigureServices", | ||
| 43 | "MsiPublishAssemblies", | ||
| 44 | "MsiUnpublishAssemblies", | ||
| 45 | "PatchFiles", | ||
| 46 | "ProcessComponents", | ||
| 47 | "PublishComponents", | ||
| 48 | "PublishFeatures", | ||
| 49 | "PublishProduct", | ||
| 50 | "RegisterClassInfo", | ||
| 51 | "RegisterComPlus", | ||
| 52 | "RegisterExtensionInfo", | ||
| 53 | "RegisterFonts", | ||
| 54 | "RegisterMIMEInfo", | ||
| 55 | "RegisterProduct", | ||
| 56 | "RegisterProgIdInfo", | ||
| 57 | "RegisterTypeLibraries", | ||
| 58 | "RegisterUser", | ||
| 59 | "RemoveDuplicateFiles", | ||
| 60 | "RemoveEnvironmentStrings", | ||
| 61 | "RemoveExistingProducts", | ||
| 62 | "RemoveFiles", | ||
| 63 | "RemoveFolders", | ||
| 64 | "RemoveIniValues", | ||
| 65 | "RemoveODBC", | ||
| 66 | "RemoveRegistryValues", | ||
| 67 | "RemoveShortcuts", | ||
| 68 | "ResolveSource", | ||
| 69 | "RMCCPSearch", | ||
| 70 | "ScheduleReboot", | ||
| 71 | "SelfRegModules", | ||
| 72 | "SelfUnregModules", | ||
| 73 | "SetODBCFolders", | ||
| 74 | "StartServices", | ||
| 75 | "StopServices", | ||
| 76 | "UnpublishComponents", | ||
| 77 | "UnpublishFeatures", | ||
| 78 | "UnregisterClassInfo", | ||
| 79 | "UnregisterComPlus", | ||
| 80 | "UnregisterExtensionInfo", | ||
| 81 | "UnregisterFonts", | ||
| 82 | "UnregisterMIMEInfo", | ||
| 83 | "UnregisterProgIdInfo", | ||
| 84 | "UnregisterTypeLibraries", | ||
| 85 | "ValidateProductID", | ||
| 86 | "WriteEnvironmentStrings", | ||
| 87 | "WriteIniValues", | ||
| 88 | "WriteRegistryValues", | ||
| 89 | }; | ||
| 90 | |||
| 91 | private static readonly WixActionTuple[] standardActions = new[] | ||
| 92 | { | ||
| 93 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 94 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 95 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 96 | |||
| 97 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 98 | |||
| 99 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 100 | |||
| 101 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 102 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 103 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 104 | |||
| 105 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 106 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 107 | |||
| 108 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallAdminPackage", AccessModifier.Public)) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 109 | |||
| 110 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 111 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 112 | new WixActionTuple(null, new Identifier("InstallUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 113 | |||
| 114 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 115 | new WixActionTuple(null, new Identifier("AdminUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 116 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 117 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 118 | new WixActionTuple(null, new Identifier("InstallUISequence/CostInitialize", AccessModifier.Public)) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 119 | |||
| 120 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 121 | new WixActionTuple(null, new Identifier("AdminUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 122 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 123 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 124 | new WixActionTuple(null, new Identifier("InstallUISequence/CostFinalize", AccessModifier.Public)) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 125 | |||
| 126 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
| 127 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 128 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallValidate", AccessModifier.Public)) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 129 | |||
| 130 | new WixActionTuple(null, new Identifier("AdminUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence }, | ||
| 131 | new WixActionTuple(null, new Identifier("InstallUISequence/ExecuteAction", AccessModifier.Public)) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence }, | ||
| 132 | |||
| 133 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 134 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateShortcuts", AccessModifier.Public)) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 135 | |||
| 136 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
| 137 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiPublishAssemblies", AccessModifier.Public)) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 138 | |||
| 139 | //<action name="PublishComponents" sequence="6200" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 140 | //<action name="PublishFeatures" sequence="6300" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 141 | //<action name="PublishProduct" sequence="6400" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 142 | //<action name="RegisterClassInfo" sequence="4600" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 143 | //<action name="RegisterExtensionInfo" sequence="4700" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 144 | //<action name="RegisterMIMEInfo" sequence="4900" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 145 | //<action name="RegisterProgIdInfo" sequence="4800" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 146 | //<action name="AllocateRegistrySpace" condition="NOT Installed" sequence="1550" InstallExecuteSequence="yes" /> | ||
| 147 | //<action name="AppSearch" sequence="50" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
| 148 | //<action name="BindImage" sequence="4300" InstallExecuteSequence="yes" /> | ||
| 149 | //<action name="CreateFolders" sequence="3700" InstallExecuteSequence="yes" /> | ||
| 150 | //<action name="DuplicateFiles" sequence="4210" InstallExecuteSequence="yes" /> | ||
| 151 | //<action name="FindRelatedProducts" sequence="25" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
| 152 | //<action name="InstallODBC" sequence="5400" InstallExecuteSequence="yes" /> | ||
| 153 | //<action name="InstallServices" condition="VersionNT" sequence="5800" InstallExecuteSequence="yes" /> | ||
| 154 | //<action name="MsiConfigureServices" condition="VersionNT>=600" sequence="5850" InstallExecuteSequence="yes" /> | ||
| 155 | //<action name="IsolateComponents" sequence="950" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
| 156 | //<action name="LaunchConditions" sequence="100" AdminExecuteSequence="yes" AdminUISequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
| 157 | //<action name="MigrateFeatureStates" sequence="1200" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
| 158 | //<action name="MoveFiles" sequence="3800" InstallExecuteSequence="yes" /> | ||
| 159 | //<action name="PatchFiles" sequence="4090" AdminExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
| 160 | //<action name="ProcessComponents" sequence="1600" InstallExecuteSequence="yes" /> | ||
| 161 | //<action name="RegisterComPlus" sequence="5700" InstallExecuteSequence="yes" /> | ||
| 162 | //<action name="RegisterFonts" sequence="5300" InstallExecuteSequence="yes" /> | ||
| 163 | //<action name="RegisterProduct" sequence="6100" InstallExecuteSequence="yes" /> | ||
| 164 | //<action name="RegisterTypeLibraries" sequence="5500" InstallExecuteSequence="yes" /> | ||
| 165 | //<action name="RegisterUser" sequence="6000" InstallExecuteSequence="yes" /> | ||
| 166 | //<action name="RemoveDuplicateFiles" sequence="3400" InstallExecuteSequence="yes" /> | ||
| 167 | //<action name="RemoveEnvironmentStrings" sequence="3300" InstallExecuteSequence="yes" /> | ||
| 168 | //<action name="RemoveFiles" sequence="3500" InstallExecuteSequence="yes" /> | ||
| 169 | //<action name="RemoveFolders" sequence="3600" InstallExecuteSequence="yes" /> | ||
| 170 | //<action name="RemoveIniValues" sequence="3100" InstallExecuteSequence="yes" /> | ||
| 171 | //<action name="RemoveODBC" sequence="2400" InstallExecuteSequence="yes" /> | ||
| 172 | //<action name="RemoveRegistryValues" sequence="2600" InstallExecuteSequence="yes" /> | ||
| 173 | //<action name="RemoveShortcuts" sequence="3200" InstallExecuteSequence="yes" /> | ||
| 174 | //<action name="SelfRegModules" sequence="5600" InstallExecuteSequence="yes" /> | ||
| 175 | //<action name="SelfUnregModules" sequence="2200" InstallExecuteSequence="yes" /> | ||
| 176 | //<action name="SetODBCFolders" sequence="1100" InstallExecuteSequence="yes" /> | ||
| 177 | |||
| 178 | |||
| 179 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 180 | new WixActionTuple(null, new Identifier("InstallUISequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
| 181 | |||
| 182 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DeleteServices", AccessModifier.Public)) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 183 | |||
| 184 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
| 185 | new WixActionTuple(null, new Identifier("InstallUISequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
| 186 | |||
| 187 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StartServices", AccessModifier.Public)) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 188 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StopServices", AccessModifier.Public)) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
| 189 | |||
| 190 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiUnpublishAssemblies", AccessModifier.Public)) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 191 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishComponents", AccessModifier.Public)) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 192 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishFeatures", AccessModifier.Public)) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 193 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterClassInfo", AccessModifier.Public)) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 194 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterComPlus", AccessModifier.Public)) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 195 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterExtensionInfo", AccessModifier.Public)) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 196 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterFonts", AccessModifier.Public)) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 197 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterMIMEInfo", AccessModifier.Public)) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 198 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterProgIdInfo", AccessModifier.Public)) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 199 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterTypeLibraries", AccessModifier.Public)) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 200 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 201 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteEnvironmentStrings", AccessModifier.Public)) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 202 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteIniValues", AccessModifier.Public)) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 203 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteRegistryValues", AccessModifier.Public)) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
| 204 | }; | ||
| 205 | |||
| 206 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | ||
| 207 | { | ||
| 208 | "TARGETDIR", | ||
| 209 | "AdminToolsFolder", | ||
| 210 | "AppDataFolder", | ||
| 211 | "CommonAppDataFolder", | ||
| 212 | "CommonFilesFolder", | ||
| 213 | "DesktopFolder", | ||
| 214 | "FavoritesFolder", | ||
| 215 | "FontsFolder", | ||
| 216 | "LocalAppDataFolder", | ||
| 217 | "MyPicturesFolder", | ||
| 218 | "PersonalFolder", | ||
| 219 | "ProgramFilesFolder", | ||
| 220 | "ProgramMenuFolder", | ||
| 221 | "SendToFolder", | ||
| 222 | "StartMenuFolder", | ||
| 223 | "StartupFolder", | ||
| 224 | "System16Folder", | ||
| 225 | "SystemFolder", | ||
| 226 | "TempFolder", | ||
| 227 | "TemplateFolder", | ||
| 228 | "WindowsFolder", | ||
| 229 | "CommonFiles64Folder", | ||
| 230 | "ProgramFiles64Folder", | ||
| 231 | "System64Folder", | ||
| 232 | "NetHoodFolder", | ||
| 233 | "PrintHoodFolder", | ||
| 234 | "RecentFolder", | ||
| 235 | "WindowsVolume", | ||
| 236 | }; | ||
| 237 | |||
| 238 | /// <summary> | ||
| 239 | /// Find out if an action is a standard action. | ||
| 240 | /// </summary> | ||
| 241 | /// <param name="actionName">Name of the action.</param> | ||
| 242 | /// <returns>true if the action is standard, false otherwise.</returns> | ||
| 243 | public static bool IsStandardAction(string actionName) | ||
| 244 | { | ||
| 245 | return standardActionNames.Contains(actionName); | ||
| 246 | } | ||
| 247 | |||
| 248 | public static WixActionTuple[] StandardActions() => standardActions; | ||
| 249 | |||
| 250 | /// <summary> | ||
| 251 | /// Find out if a directory is a standard directory. | ||
| 252 | /// </summary> | ||
| 253 | /// <param name="directoryName">Name of the directory.</param> | ||
| 254 | /// <returns>true if the directory is standard, false otherwise.</returns> | ||
| 255 | public static bool IsStandardDirectory(string directoryName) | ||
| 256 | { | ||
| 257 | return standardDirectories.Contains(directoryName); | ||
| 258 | } | ||
| 259 | } | ||
| 260 | } | ||
