aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/WindowsInstallerStandard.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/WindowsInstallerStandard.cs')
-rw-r--r--src/WixToolset.Core/WindowsInstallerStandard.cs260
1 files changed, 0 insertions, 260 deletions
diff --git a/src/WixToolset.Core/WindowsInstallerStandard.cs b/src/WixToolset.Core/WindowsInstallerStandard.cs
deleted file mode 100644
index 90a53e6a..00000000
--- a/src/WixToolset.Core/WindowsInstallerStandard.cs
+++ /dev/null
@@ -1,260 +0,0 @@
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
3namespace 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}