diff options
Diffstat (limited to '')
-rw-r--r-- | src/WixToolset.Data/WindowsInstallerStandard.cs | 506 |
1 files changed, 506 insertions, 0 deletions
diff --git a/src/WixToolset.Data/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstallerStandard.cs new file mode 100644 index 00000000..b8d24b62 --- /dev/null +++ b/src/WixToolset.Data/WindowsInstallerStandard.cs | |||
@@ -0,0 +1,506 @@ | |||
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.Data | ||
4 | { | ||
5 | using System.Collections.Generic; | ||
6 | using WixToolset.Data.Tuples; | ||
7 | |||
8 | public class WindowsInstallerStandard | ||
9 | { | ||
10 | private static readonly HashSet<string> standardActionNames = new HashSet<string> | ||
11 | { | ||
12 | "AllocateRegistrySpace", | ||
13 | "AppSearch", | ||
14 | "BindImage", | ||
15 | "CCPSearch", | ||
16 | "CostFinalize", | ||
17 | "CostInitialize", | ||
18 | "CreateFolders", | ||
19 | "CreateShortcuts", | ||
20 | "DeleteServices", | ||
21 | "DisableRollback", | ||
22 | "DuplicateFiles", | ||
23 | "ExecuteAction", | ||
24 | "FileCost", | ||
25 | "FindRelatedProducts", | ||
26 | "ForceReboot", | ||
27 | "InstallAdminPackage", | ||
28 | "InstallExecute", | ||
29 | "InstallExecuteAgain", | ||
30 | "InstallFiles", | ||
31 | "InstallFinalize", | ||
32 | "InstallInitialize", | ||
33 | "InstallODBC", | ||
34 | "InstallServices", | ||
35 | "InstallSFPCatalogFile", | ||
36 | "InstallValidate", | ||
37 | "IsolateComponents", | ||
38 | "LaunchConditions", | ||
39 | "MigrateFeatureStates", | ||
40 | "MoveFiles", | ||
41 | "MsiConfigureServices", | ||
42 | "MsiPublishAssemblies", | ||
43 | "MsiUnpublishAssemblies", | ||
44 | "PatchFiles", | ||
45 | "ProcessComponents", | ||
46 | "PublishComponents", | ||
47 | "PublishFeatures", | ||
48 | "PublishProduct", | ||
49 | "RegisterClassInfo", | ||
50 | "RegisterComPlus", | ||
51 | "RegisterExtensionInfo", | ||
52 | "RegisterFonts", | ||
53 | "RegisterMIMEInfo", | ||
54 | "RegisterProduct", | ||
55 | "RegisterProgIdInfo", | ||
56 | "RegisterTypeLibraries", | ||
57 | "RegisterUser", | ||
58 | "RemoveDuplicateFiles", | ||
59 | "RemoveEnvironmentStrings", | ||
60 | "RemoveExistingProducts", | ||
61 | "RemoveFiles", | ||
62 | "RemoveFolders", | ||
63 | "RemoveIniValues", | ||
64 | "RemoveODBC", | ||
65 | "RemoveRegistryValues", | ||
66 | "RemoveShortcuts", | ||
67 | "ResolveSource", | ||
68 | "RMCCPSearch", | ||
69 | "ScheduleReboot", | ||
70 | "SelfRegModules", | ||
71 | "SelfUnregModules", | ||
72 | "SetODBCFolders", | ||
73 | "StartServices", | ||
74 | "StopServices", | ||
75 | "UnpublishComponents", | ||
76 | "UnpublishFeatures", | ||
77 | "UnregisterClassInfo", | ||
78 | "UnregisterComPlus", | ||
79 | "UnregisterExtensionInfo", | ||
80 | "UnregisterFonts", | ||
81 | "UnregisterMIMEInfo", | ||
82 | "UnregisterProgIdInfo", | ||
83 | "UnregisterTypeLibraries", | ||
84 | "ValidateProductID", | ||
85 | "WriteEnvironmentStrings", | ||
86 | "WriteIniValues", | ||
87 | "WriteRegistryValues", | ||
88 | }; | ||
89 | |||
90 | private static readonly WixActionTuple[] standardActions = new[] | ||
91 | { | ||
92 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
93 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
94 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallInitialize", AccessModifier.Public)) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
95 | |||
96 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecute", AccessModifier.Public)) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
97 | |||
98 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallExecuteAgain", AccessModifier.Public)) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
99 | |||
100 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
101 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
102 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFinalize", AccessModifier.Public)) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
103 | |||
104 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
105 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallFiles", AccessModifier.Public)) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
106 | |||
107 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/InstallAdminPackage", AccessModifier.Public)) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
108 | |||
109 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
110 | new WixActionTuple(null, new Identifier("AdminUISequence/FileCost", AccessModifier.Public)) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence }, | ||
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 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
140 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishComponents", AccessModifier.Public)) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
141 | |||
142 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
143 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishFeatures", AccessModifier.Public)) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
144 | |||
145 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
146 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PublishProduct", AccessModifier.Public)) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
147 | |||
148 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
149 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterClassInfo", AccessModifier.Public)) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
150 | |||
151 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
152 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterExtensionInfo", AccessModifier.Public)) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
153 | |||
154 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
155 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterMIMEInfo", AccessModifier.Public)) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
156 | |||
157 | new WixActionTuple(null, new Identifier("AdvtExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvtExecuteSequence }, | ||
158 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProgIdInfo", AccessModifier.Public)) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
159 | |||
160 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/AllocateRegistrySpace", AccessModifier.Public)) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
161 | |||
162 | new WixActionTuple(null, new Identifier("InstallUISequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence }, | ||
163 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/AppSearch", AccessModifier.Public)) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
164 | |||
165 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/BindImage", AccessModifier.Public)) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
166 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CreateFolders", AccessModifier.Public)) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
167 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DuplicateFiles", AccessModifier.Public)) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
168 | |||
169 | new WixActionTuple(null, new Identifier("InstallUISequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence }, | ||
170 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/FindRelatedProducts", AccessModifier.Public)) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
171 | |||
172 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallODBC", AccessModifier.Public)) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
173 | |||
174 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/InstallServices", AccessModifier.Public)) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
175 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiConfigureServices", AccessModifier.Public)) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT>=600" }, | ||
176 | |||
177 | new WixActionTuple(null, new Identifier("InstallUISequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence }, | ||
178 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/IsolateComponents", AccessModifier.Public)) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
179 | |||
180 | new WixActionTuple(null, new Identifier("AdminUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence }, | ||
181 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
182 | new WixActionTuple(null, new Identifier("InstallUISequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence }, | ||
183 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/LaunchConditions", AccessModifier.Public)) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
184 | |||
185 | new WixActionTuple(null, new Identifier("InstallUISequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence }, | ||
186 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MigrateFeatureStates", AccessModifier.Public)) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
187 | |||
188 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MoveFiles", AccessModifier.Public)) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
189 | |||
190 | new WixActionTuple(null, new Identifier("AdminExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence }, | ||
191 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/PatchFiles", AccessModifier.Public)) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
192 | |||
193 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ProcessComponents", AccessModifier.Public)) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
194 | |||
195 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterComPlus", AccessModifier.Public)) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
196 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterFonts", AccessModifier.Public)) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
197 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterProduct", AccessModifier.Public)) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
198 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterTypeLibraries", AccessModifier.Public)) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
199 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RegisterUser", AccessModifier.Public)) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
200 | |||
201 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveDuplicateFiles", AccessModifier.Public)) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
202 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveEnvironmentStrings", AccessModifier.Public)) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
203 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFiles", AccessModifier.Public)) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
204 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveFolders", AccessModifier.Public)) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
205 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveIniValues", AccessModifier.Public)) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
206 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveODBC", AccessModifier.Public)) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
207 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveRegistryValues", AccessModifier.Public)) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
208 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RemoveShortcuts", AccessModifier.Public)) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
209 | |||
210 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfRegModules", AccessModifier.Public)) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
211 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SelfUnregModules", AccessModifier.Public)) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
212 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/SetODBCFolders", AccessModifier.Public)) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
213 | |||
214 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
215 | new WixActionTuple(null, new Identifier("InstallUISequence/CCPSearch", AccessModifier.Public)) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
216 | |||
217 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/DeleteServices", AccessModifier.Public)) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
218 | |||
219 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="NOT Installed" }, | ||
220 | new WixActionTuple(null, new Identifier("InstallUISequence/RMCCPSearch", AccessModifier.Public)) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Condition="NOT Installed" }, | ||
221 | |||
222 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StartServices", AccessModifier.Public)) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
223 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/StopServices", AccessModifier.Public)) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Condition="VersionNT" }, | ||
224 | |||
225 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/MsiUnpublishAssemblies", AccessModifier.Public)) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
226 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishComponents", AccessModifier.Public)) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
227 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnpublishFeatures", AccessModifier.Public)) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
228 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterClassInfo", AccessModifier.Public)) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
229 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterComPlus", AccessModifier.Public)) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
230 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterExtensionInfo", AccessModifier.Public)) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
231 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterFonts", AccessModifier.Public)) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
232 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterMIMEInfo", AccessModifier.Public)) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
233 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterProgIdInfo", AccessModifier.Public)) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
234 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/UnregisterTypeLibraries", AccessModifier.Public)) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
235 | |||
236 | new WixActionTuple(null, new Identifier("InstallUISequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence }, | ||
237 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/ValidateProductID", AccessModifier.Public)) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
238 | |||
239 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteEnvironmentStrings", AccessModifier.Public)) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
240 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteIniValues", AccessModifier.Public)) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
241 | new WixActionTuple(null, new Identifier("InstallExecuteSequence/WriteRegistryValues", AccessModifier.Public)) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence }, | ||
242 | }; | ||
243 | |||
244 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | ||
245 | { | ||
246 | "TARGETDIR", | ||
247 | "AdminToolsFolder", | ||
248 | "AppDataFolder", | ||
249 | "CommonAppDataFolder", | ||
250 | "CommonFilesFolder", | ||
251 | "DesktopFolder", | ||
252 | "FavoritesFolder", | ||
253 | "FontsFolder", | ||
254 | "LocalAppDataFolder", | ||
255 | "MyPicturesFolder", | ||
256 | "PersonalFolder", | ||
257 | "ProgramFilesFolder", | ||
258 | "ProgramMenuFolder", | ||
259 | "SendToFolder", | ||
260 | "StartMenuFolder", | ||
261 | "StartupFolder", | ||
262 | "System16Folder", | ||
263 | "SystemFolder", | ||
264 | "TempFolder", | ||
265 | "TemplateFolder", | ||
266 | "WindowsFolder", | ||
267 | "CommonFiles64Folder", | ||
268 | "ProgramFiles64Folder", | ||
269 | "System64Folder", | ||
270 | "NetHoodFolder", | ||
271 | "PrintHoodFolder", | ||
272 | "RecentFolder", | ||
273 | "WindowsVolume", | ||
274 | }; | ||
275 | |||
276 | /// <summary> | ||
277 | /// References: | ||
278 | /// Title: Property Reference [Windows Installer]: | ||
279 | /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp | ||
280 | /// </summary> | ||
281 | private static readonly HashSet<string> standardProperties = new HashSet<string> | ||
282 | { | ||
283 | "~", // REG_MULTI_SZ/NULL marker | ||
284 | "ACTION", | ||
285 | "ADDDEFAULT", | ||
286 | "ADDLOCAL", | ||
287 | "ADDDSOURCE", | ||
288 | "AdminProperties", | ||
289 | "AdminUser", | ||
290 | "ADVERTISE", | ||
291 | "AFTERREBOOT", | ||
292 | "AllowProductCodeMismatches", | ||
293 | "AllowProductVersionMajorMismatches", | ||
294 | "ALLUSERS", | ||
295 | "Alpha", | ||
296 | "ApiPatchingSymbolFlags", | ||
297 | "ARPAUTHORIZEDCDFPREFIX", | ||
298 | "ARPCOMMENTS", | ||
299 | "ARPCONTACT", | ||
300 | "ARPHELPLINK", | ||
301 | "ARPHELPTELEPHONE", | ||
302 | "ARPINSTALLLOCATION", | ||
303 | "ARPNOMODIFY", | ||
304 | "ARPNOREMOVE", | ||
305 | "ARPNOREPAIR", | ||
306 | "ARPPRODUCTIONICON", | ||
307 | "ARPREADME", | ||
308 | "ARPSIZE", | ||
309 | "ARPSYSTEMCOMPONENT", | ||
310 | "ARPULRINFOABOUT", | ||
311 | "ARPURLUPDATEINFO", | ||
312 | "AVAILABLEFREEREG", | ||
313 | "BorderSize", | ||
314 | "BorderTop", | ||
315 | "CaptionHeight", | ||
316 | "CCP_DRIVE", | ||
317 | "ColorBits", | ||
318 | "COMPADDLOCAL", | ||
319 | "COMPADDSOURCE", | ||
320 | "COMPANYNAME", | ||
321 | "ComputerName", | ||
322 | "CostingComplete", | ||
323 | "Date", | ||
324 | "DefaultUIFont", | ||
325 | "DISABLEADVTSHORTCUTS", | ||
326 | "DISABLEMEDIA", | ||
327 | "DISABLEROLLBACK", | ||
328 | "DiskPrompt", | ||
329 | "DontRemoveTempFolderWhenFinished", | ||
330 | "EnableUserControl", | ||
331 | "EXECUTEACTION", | ||
332 | "EXECUTEMODE", | ||
333 | "FASTOEM", | ||
334 | "FILEADDDEFAULT", | ||
335 | "FILEADDLOCAL", | ||
336 | "FILEADDSOURCE", | ||
337 | "IncludeWholeFilesOnly", | ||
338 | "Installed", | ||
339 | "INSTALLLEVEL", | ||
340 | "Intel", | ||
341 | "Intel64", | ||
342 | "IsAdminPackage", | ||
343 | "LeftUnit", | ||
344 | "LIMITUI", | ||
345 | "ListOfPatchGUIDsToReplace", | ||
346 | "ListOfTargetProductCode", | ||
347 | "LOGACTION", | ||
348 | "LogonUser", | ||
349 | "Manufacturer", | ||
350 | "MEDIAPACKAGEPATH", | ||
351 | "MediaSourceDir", | ||
352 | "MinimumRequiredMsiVersion", | ||
353 | "MsiAMD64", | ||
354 | "MSIAPRSETTINGSIDENTIFIER", | ||
355 | "MSICHECKCRCS", | ||
356 | "MSIDISABLERMRESTART", | ||
357 | "MSIENFORCEUPGRADECOMPONENTRULES", | ||
358 | "MSIFASTINSTALL", | ||
359 | "MsiFileToUseToCreatePatchTables", | ||
360 | "MsiHiddenProperties", | ||
361 | "MSIINSTALLPERUSER", | ||
362 | "MSIINSTANCEGUID", | ||
363 | "MsiLogFileLocation", | ||
364 | "MsiLogging", | ||
365 | "MsiNetAssemblySupport", | ||
366 | "MSINEWINSTANCE", | ||
367 | "MSINODISABLEMEDIA", | ||
368 | "MsiNTProductType", | ||
369 | "MsiNTSuiteBackOffice", | ||
370 | "MsiNTSuiteDataCenter", | ||
371 | "MsiNTSuiteEnterprise", | ||
372 | "MsiNTSuiteSmallBusiness", | ||
373 | "MsiNTSuiteSmallBusinessRestricted", | ||
374 | "MsiNTSuiteWebServer", | ||
375 | "MsiNTSuitePersonal", | ||
376 | "MsiPatchRemovalList", | ||
377 | "MSIPATCHREMOVE", | ||
378 | "MSIRESTARTMANAGERCONTROL", | ||
379 | "MsiRestartManagerSessionKey", | ||
380 | "MSIRMSHUTDOWN", | ||
381 | "MsiRunningElevated", | ||
382 | "MsiUIHideCancel", | ||
383 | "MsiUIProgressOnly", | ||
384 | "MsiUISourceResOnly", | ||
385 | "MsiSystemRebootPending", | ||
386 | "MsiWin32AssemblySupport", | ||
387 | "NOCOMPANYNAME", | ||
388 | "NOUSERNAME", | ||
389 | "OLEAdvtSupport", | ||
390 | "OptimizePatchSizeForLargeFiles", | ||
391 | "OriginalDatabase", | ||
392 | "OutOfDiskSpace", | ||
393 | "OutOfNoRbDiskSpace", | ||
394 | "ParentOriginalDatabase", | ||
395 | "ParentProductCode", | ||
396 | "PATCH", | ||
397 | "PATCH_CACHE_DIR", | ||
398 | "PATCH_CACHE_ENABLED", | ||
399 | "PatchGUID", | ||
400 | "PATCHNEWPACKAGECODE", | ||
401 | "PATCHNEWSUMMARYCOMMENTS", | ||
402 | "PATCHNEWSUMMARYSUBJECT", | ||
403 | "PatchOutputPath", | ||
404 | "PatchSourceList", | ||
405 | "PhysicalMemory", | ||
406 | "PIDKEY", | ||
407 | "PIDTemplate", | ||
408 | "Preselected", | ||
409 | "PRIMARYFOLDER", | ||
410 | "PrimaryVolumePath", | ||
411 | "PrimaryVolumeSpaceAvailable", | ||
412 | "PrimaryVolumeSpaceRemaining", | ||
413 | "PrimaryVolumeSpaceRequired", | ||
414 | "Privileged", | ||
415 | "ProductCode", | ||
416 | "ProductID", | ||
417 | "ProductLanguage", | ||
418 | "ProductName", | ||
419 | "ProductState", | ||
420 | "ProductVersion", | ||
421 | "PROMPTROLLBACKCOST", | ||
422 | "REBOOT", | ||
423 | "REBOOTPROMPT", | ||
424 | "RedirectedDllSupport", | ||
425 | "REINSTALL", | ||
426 | "REINSTALLMODE", | ||
427 | "RemoveAdminTS", | ||
428 | "REMOVE", | ||
429 | "ReplacedInUseFiles", | ||
430 | "RestrictedUserControl", | ||
431 | "RESUME", | ||
432 | "RollbackDisabled", | ||
433 | "ROOTDRIVE", | ||
434 | "ScreenX", | ||
435 | "ScreenY", | ||
436 | "SecureCustomProperties", | ||
437 | "ServicePackLevel", | ||
438 | "ServicePackLevelMinor", | ||
439 | "SEQUENCE", | ||
440 | "SharedWindows", | ||
441 | "ShellAdvtSupport", | ||
442 | "SHORTFILENAMES", | ||
443 | "SourceDir", | ||
444 | "SOURCELIST", | ||
445 | "SystemLanguageID", | ||
446 | "TARGETDIR", | ||
447 | "TerminalServer", | ||
448 | "TextHeight", | ||
449 | "Time", | ||
450 | "TRANSFORMS", | ||
451 | "TRANSFORMSATSOURCE", | ||
452 | "TRANSFORMSSECURE", | ||
453 | "TTCSupport", | ||
454 | "UILevel", | ||
455 | "UpdateStarted", | ||
456 | "UpgradeCode", | ||
457 | "UPGRADINGPRODUCTCODE", | ||
458 | "UserLanguageID", | ||
459 | "USERNAME", | ||
460 | "UserSID", | ||
461 | "Version9X", | ||
462 | "VersionDatabase", | ||
463 | "VersionMsi", | ||
464 | "VersionNT", | ||
465 | "VersionNT64", | ||
466 | "VirtualMemory", | ||
467 | "WindowsBuild", | ||
468 | "WindowsVolume", | ||
469 | }; | ||
470 | |||
471 | /// <summary> | ||
472 | /// Find out if an action is a standard action. | ||
473 | /// </summary> | ||
474 | /// <param name="actionName">Name of the action.</param> | ||
475 | /// <returns>true if the action is standard, false otherwise.</returns> | ||
476 | public static bool IsStandardAction(string actionName) | ||
477 | { | ||
478 | return standardActionNames.Contains(actionName); | ||
479 | } | ||
480 | |||
481 | /// <summary> | ||
482 | /// Array of standard actions. | ||
483 | /// </summary> | ||
484 | public static WixActionTuple[] StandardActions() => standardActions; | ||
485 | |||
486 | /// <summary> | ||
487 | /// Find out if a directory is a standard directory. | ||
488 | /// </summary> | ||
489 | /// <param name="directoryName">Name of the directory.</param> | ||
490 | /// <returns>true if the directory is standard, false otherwise.</returns> | ||
491 | public static bool IsStandardDirectory(string directoryName) | ||
492 | { | ||
493 | return standardDirectories.Contains(directoryName); | ||
494 | } | ||
495 | |||
496 | /// <summary> | ||
497 | /// Find out if a property is a standard property. | ||
498 | /// </summary> | ||
499 | /// <param name="propertyName">Name of the property.</param> | ||
500 | /// <returns>true if a property is standard, false otherwise.</returns> | ||
501 | public static bool IsStandardProperty(string propertyName) | ||
502 | { | ||
503 | return standardProperties.Contains(propertyName); | ||
504 | } | ||
505 | } | ||
506 | } | ||