diff options
author | Rob Mensching <rob@firegiant.com> | 2020-02-05 14:34:11 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2020-02-05 14:43:36 -0800 |
commit | e87c38acec6597ab4d98820e2ba1fc891483c023 (patch) | |
tree | 72c7a92d460a30943bd09f4adfdb18bd0e25eb4a | |
parent | 2b001acb812edb523a072ac0bb4f49761616c080 (diff) | |
download | wix-e87c38acec6597ab4d98820e2ba1fc891483c023.tar.gz wix-e87c38acec6597ab4d98820e2ba1fc891483c023.tar.bz2 wix-e87c38acec6597ab4d98820e2ba1fc891483c023.zip |
Improve handling of standard actions
-rw-r--r-- | src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | 426 |
1 files changed, 179 insertions, 247 deletions
diff --git a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs index 43a5e54c..5f01c3a0 100644 --- a/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs +++ b/src/WixToolset.Data/WindowsInstaller/WindowsInstallerStandard.cs | |||
@@ -2,244 +2,15 @@ | |||
2 | 2 | ||
3 | namespace WixToolset.Data.WindowsInstaller | 3 | namespace WixToolset.Data.WindowsInstaller |
4 | { | 4 | { |
5 | using System; | ||
5 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
7 | using System.Linq; | ||
6 | using WixToolset.Data.Tuples; | 8 | using WixToolset.Data.Tuples; |
7 | 9 | ||
8 | public static class WindowsInstallerStandard | 10 | public static class WindowsInstallerStandard |
9 | { | 11 | { |
10 | private static readonly HashSet<string> standardActionNames = new HashSet<string> | 12 | private static readonly Dictionary<string, WixActionTuple> standardActionsById; |
11 | { | 13 | private static readonly HashSet<string> standardActionNames; |
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(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
93 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, | ||
94 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
95 | |||
96 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
97 | |||
98 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
99 | |||
100 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
101 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, | ||
102 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
103 | |||
104 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
105 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
106 | |||
107 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
108 | |||
109 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
110 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, | ||
111 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
112 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
113 | |||
114 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
115 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
116 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
117 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
118 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
119 | |||
120 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
121 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
122 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
123 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
124 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
125 | |||
126 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
127 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
128 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
129 | |||
130 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
131 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
132 | |||
133 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
134 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
135 | |||
136 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
137 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
138 | |||
139 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
140 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
141 | |||
142 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
143 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
144 | |||
145 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
146 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
147 | |||
148 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
149 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
150 | |||
151 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
152 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
153 | |||
154 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
155 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
156 | |||
157 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
158 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
159 | |||
160 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
161 | |||
162 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
163 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
164 | |||
165 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
166 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
167 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
168 | |||
169 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
170 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
171 | |||
172 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
173 | |||
174 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
175 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, | ||
176 | |||
177 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
178 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
179 | |||
180 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
181 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
182 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
183 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
184 | |||
185 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
186 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
187 | |||
188 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
189 | |||
190 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
191 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
192 | |||
193 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
194 | |||
195 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
196 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
197 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
198 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
199 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
200 | |||
201 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
202 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
203 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
204 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
205 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
206 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
207 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
208 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
209 | |||
210 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
211 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
212 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
213 | |||
214 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
215 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, | ||
216 | |||
217 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
218 | |||
219 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
220 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, | ||
221 | |||
222 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
223 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
224 | |||
225 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
226 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
227 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
228 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
229 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
230 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
231 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
232 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
233 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
234 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
235 | |||
236 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
237 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
238 | |||
239 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
240 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
241 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
242 | }; | ||
243 | 14 | ||
244 | private static readonly HashSet<string> standardDirectories = new HashSet<string> | 15 | private static readonly HashSet<string> standardDirectories = new HashSet<string> |
245 | { | 16 | { |
@@ -468,39 +239,200 @@ namespace WixToolset.Data.WindowsInstaller | |||
468 | "WindowsVolume", | 239 | "WindowsVolume", |
469 | }; | 240 | }; |
470 | 241 | ||
242 | static WindowsInstallerStandard() | ||
243 | { | ||
244 | var standardActions = new[] | ||
245 | { | ||
246 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
247 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, | ||
248 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallInitialize")) { Action="InstallInitialize", Sequence=1500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
249 | |||
250 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecute")) { Action="InstallExecute", Sequence=6500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
251 | |||
252 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallExecuteAgain")) { Action="InstallExecuteAgain", Sequence=6550, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
253 | |||
254 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
255 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.AdvertiseExecuteSequence, Overridable = true }, | ||
256 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFinalize")) { Action="InstallFinalize", Sequence=6600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
257 | |||
258 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
259 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallFiles")) { Action="InstallFiles", Sequence=4000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true }, | ||
260 | |||
261 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallAdminPackage")) { Action="InstallAdminPackage", Sequence=3900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
262 | |||
263 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminExecuteSequence, Overridable = true }, | ||
264 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.AdminUISequence, Overridable = true }, | ||
265 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
266 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FileCost")) { Action="FileCost", Sequence=900, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
267 | |||
268 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
269 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
270 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
271 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
272 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostInitialize")) { Action="CostInitialize", Sequence=800, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
273 | |||
274 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
275 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
276 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
277 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
278 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CostFinalize")) { Action="CostFinalize", Sequence=1000, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
279 | |||
280 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
281 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
282 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallValidate")) { Action="InstallValidate", Sequence=1400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
283 | |||
284 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
285 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ExecuteAction")) { Action="ExecuteAction", Sequence=1300, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
286 | |||
287 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
288 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateShortcuts")) { Action="CreateShortcuts", Sequence=4500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
289 | |||
290 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
291 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiPublishAssemblies")) { Action="MsiPublishAssemblies", Sequence=6250, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
292 | |||
293 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
294 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishComponents")) { Action="PublishComponents", Sequence=6200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
295 | |||
296 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
297 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishFeatures")) { Action="PublishFeatures", Sequence=6300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
298 | |||
299 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
300 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PublishProduct")) { Action="PublishProduct", Sequence=6400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
301 | |||
302 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
303 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterClassInfo")) { Action="RegisterClassInfo", Sequence=4600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
304 | |||
305 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
306 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterExtensionInfo")) { Action="RegisterExtensionInfo", Sequence=4700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
307 | |||
308 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
309 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterMIMEInfo")) { Action="RegisterMIMEInfo", Sequence=4900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
310 | |||
311 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdvertiseExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.AdvertiseExecuteSequence , Overridable = true }, | ||
312 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProgIdInfo")) { Action="RegisterProgIdInfo", Sequence=4800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
313 | |||
314 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AllocateRegistrySpace")) { Action="AllocateRegistrySpace", Sequence=1550, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
315 | |||
316 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
317 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/AppSearch")) { Action="AppSearch", Sequence=50, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
318 | |||
319 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/BindImage")) { Action="BindImage", Sequence=4300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
320 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CreateFolders")) { Action="CreateFolders", Sequence=3700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
321 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DuplicateFiles")) { Action="DuplicateFiles", Sequence=4210, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
322 | |||
323 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
324 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/FindRelatedProducts")) { Action="FindRelatedProducts", Sequence=25, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
325 | |||
326 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallODBC")) { Action="InstallODBC", Sequence=5400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
327 | |||
328 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/InstallServices")) { Action="InstallServices", Sequence=5800, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
329 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiConfigureServices")) { Action="MsiConfigureServices", Sequence=5850, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT>=600" }, | ||
330 | |||
331 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
332 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/IsolateComponents")) { Action="IsolateComponents", Sequence=950, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
333 | |||
334 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminUISequence , Overridable = true }, | ||
335 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
336 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
337 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/LaunchConditions")) { Action="LaunchConditions", Sequence=100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
338 | |||
339 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
340 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MigrateFeatureStates")) { Action="MigrateFeatureStates", Sequence=1200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
341 | |||
342 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MoveFiles")) { Action="MoveFiles", Sequence=3800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
343 | |||
344 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "AdminExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.AdminExecuteSequence , Overridable = true }, | ||
345 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/PatchFiles")) { Action="PatchFiles", Sequence=4090, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
346 | |||
347 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ProcessComponents")) { Action="ProcessComponents", Sequence=1600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
348 | |||
349 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterComPlus")) { Action="RegisterComPlus", Sequence=5700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
350 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterFonts")) { Action="RegisterFonts", Sequence=5300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
351 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterProduct")) { Action="RegisterProduct", Sequence=6100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
352 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterTypeLibraries")) { Action="RegisterTypeLibraries", Sequence=5500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
353 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RegisterUser")) { Action="RegisterUser", Sequence=6000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
354 | |||
355 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveDuplicateFiles")) { Action="RemoveDuplicateFiles", Sequence=3400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
356 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveEnvironmentStrings")) { Action="RemoveEnvironmentStrings", Sequence=3300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
357 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFiles")) { Action="RemoveFiles", Sequence=3500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
358 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveFolders")) { Action="RemoveFolders", Sequence=3600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
359 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveIniValues")) { Action="RemoveIniValues", Sequence=3100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
360 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveODBC")) { Action="RemoveODBC", Sequence=2400, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
361 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveRegistryValues")) { Action="RemoveRegistryValues", Sequence=2600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
362 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RemoveShortcuts")) { Action="RemoveShortcuts", Sequence=3200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
363 | |||
364 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfRegModules")) { Action="SelfRegModules", Sequence=5600, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
365 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SelfUnregModules")) { Action="SelfUnregModules", Sequence=2200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
366 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/SetODBCFolders")) { Action="SetODBCFolders", Sequence=1100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
367 | |||
368 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
369 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/CCPSearch")) { Action="CCPSearch", Sequence=500, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, | ||
370 | |||
371 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/DeleteServices")) { Action="DeleteServices", Sequence=2000, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
372 | |||
373 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="NOT Installed" }, | ||
374 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/RMCCPSearch")) { Action="RMCCPSearch", Sequence=600, SequenceTable=SequenceTable.InstallUISequence, Overridable = true, Condition="NOT Installed" }, | ||
375 | |||
376 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StartServices")) { Action="StartServices", Sequence=5900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
377 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/StopServices")) { Action="StopServices", Sequence=1900, SequenceTable=SequenceTable.InstallExecuteSequence, Overridable = true, Condition="VersionNT" }, | ||
378 | |||
379 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/MsiUnpublishAssemblies")) { Action="MsiUnpublishAssemblies", Sequence=1750, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
380 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishComponents")) { Action="UnpublishComponents", Sequence=1700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
381 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnpublishFeatures")) { Action="UnpublishFeatures", Sequence=1800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
382 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterClassInfo")) { Action="UnregisterClassInfo", Sequence=2700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
383 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterComPlus")) { Action="UnregisterComPlus", Sequence=2100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
384 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterExtensionInfo")) { Action="UnregisterExtensionInfo", Sequence=2800, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
385 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterFonts")) { Action="UnregisterFonts", Sequence=2500, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
386 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterMIMEInfo")) { Action="UnregisterMIMEInfo", Sequence=3000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
387 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterProgIdInfo")) { Action="UnregisterProgIdInfo", Sequence=2900, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
388 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/UnregisterTypeLibraries")) { Action="UnregisterTypeLibraries", Sequence=2300, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
389 | |||
390 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallUISequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallUISequence , Overridable = true }, | ||
391 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/ValidateProductID")) { Action="ValidateProductID", Sequence=700, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
392 | |||
393 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteEnvironmentStrings")) { Action="WriteEnvironmentStrings", Sequence=5200, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
394 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteIniValues")) { Action="WriteIniValues", Sequence=5100, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
395 | new WixActionTuple(null, new Identifier(AccessModifier.Public, "InstallExecuteSequence/WriteRegistryValues")) { Action="WriteRegistryValues", Sequence=5000, SequenceTable=SequenceTable.InstallExecuteSequence , Overridable = true }, | ||
396 | }; | ||
397 | |||
398 | standardActionNames = new HashSet<string>(standardActions.Select(a => a.Action)); | ||
399 | standardActionsById = standardActions.ToDictionary(a => a.Id.Id); | ||
400 | } | ||
401 | |||
471 | /// <summary> | 402 | /// <summary> |
472 | /// Find out if an action is a standard action. | 403 | /// Find out if an action is a standard action. |
473 | /// </summary> | 404 | /// </summary> |
474 | /// <param name="actionName">Name of the action.</param> | 405 | /// <param name="actionName">Name of the action.</param> |
475 | /// <returns>true if the action is standard, false otherwise.</returns> | 406 | /// <returns>true if the action is standard, false otherwise.</returns> |
476 | public static bool IsStandardAction(string actionName) | 407 | public static bool IsStandardAction(string actionName) => standardActionNames.Contains(actionName); |
477 | { | ||
478 | return standardActionNames.Contains(actionName); | ||
479 | } | ||
480 | 408 | ||
481 | /// <summary> | 409 | /// <summary> |
482 | /// Array of standard actions. | 410 | /// Standard actions. |
483 | /// </summary> | 411 | /// </summary> |
484 | public static WixActionTuple[] StandardActions() => standardActions; | 412 | public static IEnumerable<WixActionTuple> StandardActions() => standardActionsById.Values; |
485 | 413 | ||
486 | /// <summary> | 414 | /// <summary> |
487 | /// Find out if a directory is a standard directory. | 415 | /// Find out if a directory is a standard directory. |
488 | /// </summary> | 416 | /// </summary> |
489 | /// <param name="directoryName">Name of the directory.</param> | 417 | /// <param name="directoryName">Name of the directory.</param> |
490 | /// <returns>true if the directory is standard, false otherwise.</returns> | 418 | /// <returns>true if the directory is standard, false otherwise.</returns> |
491 | public static bool IsStandardDirectory(string directoryName) | 419 | public static bool IsStandardDirectory(string directoryName) => standardDirectories.Contains(directoryName); |
492 | { | ||
493 | return standardDirectories.Contains(directoryName); | ||
494 | } | ||
495 | 420 | ||
496 | /// <summary> | 421 | /// <summary> |
497 | /// Find out if a property is a standard property. | 422 | /// Find out if a property is a standard property. |
498 | /// </summary> | 423 | /// </summary> |
499 | /// <param name="propertyName">Name of the property.</param> | 424 | /// <param name="propertyName">Name of the property.</param> |
500 | /// <returns>true if a property is standard, false otherwise.</returns> | 425 | /// <returns>true if a property is standard, false otherwise.</returns> |
501 | public static bool IsStandardProperty(string propertyName) | 426 | public static bool IsStandardProperty(string propertyName) => standardProperties.Contains(propertyName); |
502 | { | 427 | |
503 | return standardProperties.Contains(propertyName); | 428 | /// <summary> |
504 | } | 429 | /// Try to get standard action by id. |
430 | /// </summary> | ||
431 | public static bool TryGetStandardAction(string id, out WixActionTuple standardAction) => standardActionsById.TryGetValue(id, out standardAction); | ||
432 | |||
433 | /// <summary> | ||
434 | /// Try to get standard action by sequence and action name. | ||
435 | /// </summary> | ||
436 | public static bool TryGetStandardAction(string sequenceName, string actioname, out WixActionTuple standardAction) => standardActionsById.TryGetValue(String.Concat(sequenceName, "/", actioname), out standardAction); | ||
505 | } | 437 | } |
506 | } | 438 | } |