@joebigelow / wix-1 / commits / e9d10933

Version extension ids.

Partial fix for wixtoolset/issues#5933.

Bob Arnson committed Mar 5, 2020 at 19:48 UTC e9d10933bedb8215ec50ca85db272d6647426b31
67 files changed +1240 -1108
src/ca/CloseApps.cpp
+13 -15
@@ -4,10 +4,8 @@
4
5 #define DEFAULT_PROCESS_EXIT_WAIT_TIME 5000
6
7 -// WixCloseApplication Target Description Condition Attributes Sequence
8 -
7 // structs
10 -LPCWSTR wzQUERY_CLOSEAPPS = L"SELECT `WixCloseApplication`, `Target`, `Description`, `Condition`, `Attributes`, `Property`, `TerminateExitCode`, `Timeout` FROM `WixCloseApplication` ORDER BY `Sequence`";
8 +LPCWSTR wzQUERY_CLOSEAPPS = L"SELECT `Wix4CloseApplication`, `Target`, `Description`, `Condition`, `Attributes`, `Property`, `TerminateExitCode`, `Timeout` FROM `Wix4CloseApplication` ORDER BY `Sequence`";
9 enum eQUERY_CLOSEAPPS { QCA_ID = 1, QCA_TARGET, QCA_DESCRIPTION, QCA_CONDITION, QCA_ATTRIBUTES, QCA_PROPERTY, QCA_TERMINATEEXITCODE, QCA_TIMEOUT };
10
11 // CloseApplication.Attributes
@@ -294,14 +292,14 @@ extern "C" UINT __stdcall WixCloseApplications(
292 // loop through all the objects to be secured
293 //
294 hr = WcaOpenExecuteView(wzQUERY_CLOSEAPPS, &hView);
297 - ExitOnFailure(hr, "failed to open view on WixCloseApplication table");
295 + ExitOnFailure(hr, "failed to open view on Wix4CloseApplication table");
296 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
297 {
298 hr = WcaGetRecordString(hRec, QCA_ID, &pwzId);
301 - ExitOnFailure(hr, "failed to get id from WixCloseApplication table");
299 + ExitOnFailure(hr, "failed to get id from Wix4CloseApplication table");
300
301 hr = WcaGetRecordString(hRec, QCA_CONDITION, &pwzCondition);
304 - ExitOnFailure(hr, "failed to get condition from WixCloseApplication table");
302 + ExitOnFailure(hr, "failed to get condition from Wix4CloseApplication table");
303
304 if (pwzCondition && *pwzCondition)
305 {
@@ -309,7 +307,7 @@ extern "C" UINT __stdcall WixCloseApplications(
307 if (MSICONDITION_ERROR == condition)
308 {
309 hr = E_INVALIDARG;
312 - ExitOnFailure(hr, "failed to process condition for WixCloseApplication '%ls'", pwzId);
310 + ExitOnFailure(hr, "failed to process condition for Wix4CloseApplication '%ls'", pwzId);
311 }
312 else if (MSICONDITION_FALSE == condition)
313 {
@@ -318,16 +316,16 @@ extern "C" UINT __stdcall WixCloseApplications(
316 }
317
318 hr = WcaGetRecordFormattedString(hRec, QCA_TARGET, &pwzTarget);
321 - ExitOnFailure(hr, "failed to get target from WixCloseApplication table");
319 + ExitOnFailure(hr, "failed to get target from Wix4CloseApplication table");
320
321 hr = WcaGetRecordFormattedString(hRec, QCA_DESCRIPTION, &pwzDescription);
324 - ExitOnFailure(hr, "failed to get description from WixCloseApplication table");
322 + ExitOnFailure(hr, "failed to get description from Wix4CloseApplication table");
323
324 hr = WcaGetRecordInteger(hRec, QCA_ATTRIBUTES, reinterpret_cast<int*>(&dwAttributes));
327 - ExitOnFailure(hr, "failed to get attributes from WixCloseApplication table");
325 + ExitOnFailure(hr, "failed to get attributes from Wix4CloseApplication table");
326
327 hr = WcaGetRecordFormattedString(hRec, QCA_PROPERTY, &pwzProperty);
330 - ExitOnFailure(hr, "failed to get property from WixCloseApplication table");
328 + ExitOnFailure(hr, "failed to get property from Wix4CloseApplication table");
329
330 hr = WcaGetRecordInteger(hRec, QCA_TERMINATEEXITCODE, reinterpret_cast<int*>(&dwTerminateExitCode));
331 if (S_FALSE == hr)
@@ -335,7 +333,7 @@ extern "C" UINT __stdcall WixCloseApplications(
333 dwTerminateExitCode = 0;
334 hr = S_OK;
335 }
338 - ExitOnFailure(hr, "failed to get timeout from WixCloseApplication table");
336 + ExitOnFailure(hr, "failed to get timeout from Wix4CloseApplication table");
337
338 hr = WcaGetRecordInteger(hRec, QCA_TIMEOUT, reinterpret_cast<int*>(&dwTimeout));
339 if (S_FALSE == hr)
@@ -343,7 +341,7 @@ extern "C" UINT __stdcall WixCloseApplications(
341 dwTimeout = DEFAULT_PROCESS_EXIT_WAIT_TIME;
342 hr = S_OK;
343 }
346 - ExitOnFailure(hr, "failed to get timeout from WixCloseApplication table");
344 + ExitOnFailure(hr, "failed to get timeout from Wix4CloseApplication table");
345
346 // Before trying any changes to the machine, prompt if requested.
347 if (dwAttributes & CLOSEAPP_ATTRIBUTE_PROMPTTOCONTINUE)
@@ -433,8 +431,8 @@ extern "C" UINT __stdcall WixCloseApplications(
431 {
432 Assert(0 < cCloseApps);
433
436 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixCloseApplicationsDeferred"), pwzCustomActionData, cCloseApps * COST_CLOSEAPP);
437 - ExitOnFailure(hr, "failed to schedule WixCloseApplicationsDeferred action");
434 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CloseApplicationsDeferred"), pwzCustomActionData, cCloseApps * COST_CLOSEAPP);
435 + ExitOnFailure(hr, "failed to schedule CloseApplicationsDeferred action");
436 }
437
438 LExit:
src/ca/FormatFiles.cpp
+9 -9
@@ -27,9 +27,9 @@ extern "C" UINT __stdcall WixSchedFormatFiles(
27 PSCZ sczRollbackCustomActionData;
28
29 LPCWSTR wzQuery =
30 - L"SELECT `WixFormatFiles`.`Binary_`, `WixFormatFiles`.`File_`, `File`.`Component_` "
31 - L"FROM `WixFormatFiles`, `File` "
32 - L"WHERE `WixFormatFiles`.`File_` = `File`.`File`";
30 + L"SELECT `Wix4FormatFile`.`Binary_`, `Wix4FormatFile`.`File_`, `File`.`Component_` "
31 + L"FROM `Wix4FormatFile`, `File` "
32 + L"WHERE `Wix4FormatFile`.`File_` = `File`.`File`";
33 enum eQuery { eqBinaryKey = 1, eqFileKey, eqComponentKey };
34
35 // initialize
@@ -38,7 +38,7 @@ extern "C" UINT __stdcall WixSchedFormatFiles(
38
39 // query and loop through all the files
40 hr = WcaOpenExecuteView(wzQuery, &hView);
41 - ExitOnFailure(hr, "Failed to open view on WixFormatFiles table");
41 + ExitOnFailure(hr, "Failed to open view on Wix4FormatFile table");
42
43 DWORD cFiles = 0;
44 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
@@ -100,19 +100,19 @@ extern "C" UINT __stdcall WixSchedFormatFiles(
100 {
101 hr = S_OK;
102 }
103 - ExitOnFailure(hr, "Failure occurred while processing WixFormatFiles table");
103 + ExitOnFailure(hr, "Failure occurred while processing Wix4FormatFile table");
104
105 // schedule deferred CAs if there's anything to do
106 if (sczRollbackCustomActionData && *sczRollbackCustomActionData)
107 {
108 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixRollbackFormatFiles"), sczRollbackCustomActionData, cFiles * COST_FILEFORMATTING);
109 - ExitOnFailure(hr, "Failed to schedule WixRollbackFormatFiles");
108 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackFormatFiles"), sczRollbackCustomActionData, cFiles * COST_FILEFORMATTING);
109 + ExitOnFailure(hr, "Failed to schedule RollbackFormatFiles");
110 }
111
112 if (sczExecCustomActionData && *sczExecCustomActionData)
113 {
114 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"WixExecFormatFiles"), sczExecCustomActionData, cFiles * COST_FILEFORMATTING);
115 - ExitOnFailure(hr, "Failed to schedule WixExecFormatFiles");
114 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecFormatFiles"), sczExecCustomActionData, cFiles * COST_FILEFORMATTING);
115 + ExitOnFailure(hr, "Failed to schedule ExecFormatFiles");
116 }
117
118 LExit:
src/ca/RemoveFoldersEx.cpp
+7 -7
@@ -2,7 +2,7 @@
2
3 #include "precomp.h"
4
5 -LPCWSTR vcsRemoveFolderExQuery = L"SELECT `WixRemoveFolderEx`, `Component_`, `Property`, `InstallMode` FROM `WixRemoveFolderEx`";
5 +LPCWSTR vcsRemoveFolderExQuery = L"SELECT `Wix4RemoveFolderEx`, `Component_`, `Property`, `InstallMode` FROM `Wix4RemoveFolderEx`";
6 enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, feqMode };
7
8 static HRESULT RecursePath(
@@ -81,10 +81,10 @@ static HRESULT RecursePath(
81
82 // Add the row to remove any files and another row to remove the folder.
83 hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFiles", wzComponent, L"*.*", sczProperty, iMode);
84 - ExitOnFailure(hr, "Failed to add row to remove all files for WixRemoveFolderEx row: %S under path:", wzId, wzPath);
84 + ExitOnFailure(hr, "Failed to add row to remove all files for Wix4RemoveFolderEx row: %S under path:", wzId, wzPath);
85
86 hr = WcaAddTempRecord(phTable, phColumns, L"RemoveFile", NULL, 1, 5, L"RfxFolder", wzComponent, NULL, sczProperty, iMode);
87 - ExitOnFailure(hr, "Failed to add row to remove folder for WixRemoveFolderEx row: %S under path: %S", wzId, wzPath);
87 + ExitOnFailure(hr, "Failed to add row to remove folder for Wix4RemoveFolderEx row: %S under path: %S", wzId, wzPath);
88
89 LExit:
90 if (INVALID_HANDLE_VALUE != hFind)
@@ -122,15 +122,15 @@ extern "C" UINT WINAPI WixRemoveFoldersEx(
122 ExitOnFailure(hr, "Failed to initialize WixRemoveFoldersEx.");
123
124 // anything to do?
125 - if (S_OK != WcaTableExists(L"WixRemoveFolderEx"))
125 + if (S_OK != WcaTableExists(L"Wix4RemoveFolderEx"))
126 {
127 - WcaLog(LOGMSG_STANDARD, "WixRemoveFolderEx table doesn't exist, so there are no folders to remove.");
127 + WcaLog(LOGMSG_STANDARD, "Wix4RemoveFolderEx table doesn't exist, so there are no folders to remove.");
128 ExitFunction();
129 }
130
131 // query and loop through all the remove folders exceptions
132 hr = WcaOpenExecuteView(vcsRemoveFolderExQuery, &hView);
133 - ExitOnFailure(hr, "Failed to open view on WixRemoveFolderEx table");
133 + ExitOnFailure(hr, "Failed to open view on Wix4RemoveFolderEx table");
134
135 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
136 {
@@ -173,7 +173,7 @@ extern "C" UINT WINAPI WixRemoveFoldersEx(
173 {
174 hr = S_OK;
175 }
176 - ExitOnFailure(hr, "Failure occured while processing WixRemoveFolderEx table");
176 + ExitOnFailure(hr, "Failure occured while processing Wix4RemoveFolderEx table");
177
178 LExit:
179 if (hColumns)
src/ca/RestartManager.cpp
+4 -4
@@ -18,8 +18,8 @@ enum eRmuResourceType
18 };
19
20 LPCWSTR vcsRestartResourceQuery =
21 - L"SELECT `WixRestartResource`.`WixRestartResource`, `WixRestartResource`.`Component_`, `WixRestartResource`.`Resource`, `WixRestartResource`.`Attributes` "
22 - L"FROM `WixRestartResource`";
21 + L"SELECT `Wix4RestartResource`.`Wix4RestartResource`, `Wix4RestartResource`.`Component_`, `Wix4RestartResource`.`Resource`, `Wix4RestartResource`.`Attributes` "
22 + L"FROM `Wix4RestartResource`";
23 enum eRestartResourceQuery { rrqRestartResource = 1, rrqComponent, rrqResource, rrqAttributes };
24
25 /********************************************************************
@@ -58,9 +58,9 @@ extern "C" UINT __stdcall WixRegisterRestartResources(
58 ExitOnFailure(hr, "Failed to initialize.");
59
60 // Skip if the table doesn't exist.
61 - if (S_OK != WcaTableExists(L"WixRestartResource"))
61 + if (S_OK != WcaTableExists(L"Wix4RestartResource"))
62 {
63 - WcaLog(LOGMSG_STANDARD, "The RestartResource table does not exist; there are no resources to register with Restart Manager.");
63 + WcaLog(LOGMSG_STANDARD, "The Wix4RestartResource table does not exist; there are no resources to register with Restart Manager.");
64 ExitFunction();
65 }
66
src/ca/TouchFile.cpp
+8 -8
@@ -2,7 +2,7 @@
2
3 #include "precomp.h"
4
5 -LPCWSTR vcsTouchFileQuery = L"SELECT `WixTouchFile`, `Component_`, `Path`, `Attributes` FROM `WixTouchFile`";
5 +LPCWSTR vcsTouchFileQuery = L"SELECT `Wix4TouchFile`, `Component_`, `Path`, `Attributes` FROM `Wix4TouchFile`";
6 enum TOUCH_FILE_QUERY { tfqId = 1, tfqComponent, tfqPath, tfqTouchFileAttributes };
7
8 enum TOUCH_FILE_ATTRIBUTE
@@ -134,7 +134,7 @@ static HRESULT ProcessTouchFileTable(
134 LPWSTR sczRollbackData = NULL;
135 LPWSTR sczExecuteData = NULL;
136
137 - if (S_OK != WcaTableExists(L"WixTouchFile"))
137 + if (S_OK != WcaTableExists(L"Wix4TouchFile"))
138 {
139 ExitFunction();
140 }
@@ -142,7 +142,7 @@ static HRESULT ProcessTouchFileTable(
142 ::GetSystemTimeAsFileTime(&ftModified);
143
144 hr = WcaOpenExecuteView(vcsTouchFileQuery, &hView);
145 - ExitOnFailure(hr, "Failed to open view on WixTouchFile table");
145 + ExitOnFailure(hr, "Failed to open view on Wix4TouchFile table");
146
147 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
148 {
@@ -181,18 +181,18 @@ static HRESULT ProcessTouchFileTable(
181 {
182 hr = S_OK;
183 }
184 - ExitOnFailure(hr, "Failure occured while processing WixTouchFile table");
184 + ExitOnFailure(hr, "Failure occured while processing Wix4TouchFile table");
185
186 if (sczRollbackData)
187 {
188 - hr = WcaDoDeferredAction(L"WixRollbackTouchFile", sczRollbackData, 0);
189 - ExitOnFailure(hr, "Failed to schedule WixRollbackTouchFile");
188 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackTouchFile"), sczRollbackData, 0);
189 + ExitOnFailure(hr, "Failed to schedule RollbackTouchFile");
190 }
191
192 if (sczExecuteData)
193 {
194 - hr = WcaDoDeferredAction(L"WixExecuteTouchFile", sczExecuteData, 0);
195 - ExitOnFailure(hr, "Failed to schedule WixExecuteTouchFile");
194 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecuteTouchFile"), sczExecuteData, 0);
195 + ExitOnFailure(hr, "Failed to schedule ExecuteTouchFile");
196 }
197
198 LExit:
src/ca/XmlConfig.cpp
+20 -20
@@ -30,9 +30,9 @@ enum eXmlPreserveDate
30 };
31
32 LPCWSTR vcsXmlConfigQuery =
33 - L"SELECT `XmlConfig`.`XmlConfig`, `XmlConfig`.`File`, `XmlConfig`.`ElementPath`, `XmlConfig`.`VerifyPath`, `XmlConfig`.`Name`, "
34 - L"`XmlConfig`.`Value`, `XmlConfig`.`Flags`, `XmlConfig`.`Component_`, `Component`.`Attributes` "
35 - L"FROM `XmlConfig`,`Component` WHERE `XmlConfig`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`";
33 + L"SELECT `Wix4XmlConfig`.`Wix4XmlConfig`, `Wix4XmlConfig`.`File`, `Wix4XmlConfig`.`ElementPath`, `Wix4XmlConfig`.`VerifyPath`, `Wix4XmlConfig`.`Name`, "
34 + L"`Wix4XmlConfig`.`Value`, `Wix4XmlConfig`.`Flags`, `Wix4XmlConfig`.`Component_`, `Component`.`Attributes` "
35 + L"FROM `Wix4XmlConfig`,`Component` WHERE `Wix4XmlConfig`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`";
36 enum eXmlConfigQuery { xfqXmlConfig = 1, xfqFile, xfqElementPath, xfqVerifyPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes };
37
38 struct XML_CONFIG_CHANGE
@@ -146,7 +146,7 @@ static HRESULT ReadXmlConfigTable(
146
147 // loop through all the xml configurations
148 hr = WcaOpenExecuteView(vcsXmlConfigQuery, &hView);
149 - ExitOnFailure(hr, "failed to open view on XmlConfig table");
149 + ExitOnFailure(hr, "failed to open view on Wix4XmlConfig table");
150
151 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
152 {
@@ -155,13 +155,13 @@ static HRESULT ReadXmlConfigTable(
155
156 // Get record Id
157 hr = WcaGetRecordString(hRec, xfqXmlConfig, &pwzData);
158 - ExitOnFailure(hr, "failed to get XmlConfig record Id");
158 + ExitOnFailure(hr, "failed to get Wix4XmlConfig record Id");
159 hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData);
160 - ExitOnFailure(hr, "failed to copy XmlConfig record Id");
160 + ExitOnFailure(hr, "failed to copy Wix4XmlConfig record Id");
161
162 // Get component name
163 hr = WcaGetRecordString(hRec, xfqComponent, &pwzData);
164 - ExitOnFailure(hr, "failed to get component name for XmlConfig: %ls", (*ppxfcTail)->wzId);
164 + ExitOnFailure(hr, "failed to get component name for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
165
166 // Get the component's state
167 if (0 < lstrlenW(pwzData))
@@ -175,45 +175,45 @@ static HRESULT ReadXmlConfigTable(
175
176 // Get the xml file
177 hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData);
178 - ExitOnFailure(hr, "failed to get xml file for XmlConfig: %ls", (*ppxfcTail)->wzId);
178 + ExitOnFailure(hr, "failed to get xml file for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
179 hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData);
180 ExitOnFailure(hr, "failed to copy xml file path");
181
182 // Figure out if the file is already on the machine or if it's being installed
183 hr = WcaGetRecordString(hRec, xfqFile, &pwzData);
184 - ExitOnFailure(hr, "failed to get xml file for XmlConfig: %ls", (*ppxfcTail)->wzId);
184 + ExitOnFailure(hr, "failed to get xml file for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
185 if (NULL != wcsstr(pwzData, L"[!") || NULL != wcsstr(pwzData, L"[#"))
186 {
187 (*ppxfcTail)->fInstalledFile = TRUE;
188 }
189
190 - // Get the XmlConfig table flags
190 + // Get the Wix4XmlConfig table flags
191 hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags);
192 - ExitOnFailure(hr, "failed to get XmlConfig flags for XmlConfig: %ls", (*ppxfcTail)->wzId);
192 + ExitOnFailure(hr, "failed to get Wix4XmlConfig flags for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
193
194 // Get the Element Path
195 hr = WcaGetRecordFormattedString(hRec, xfqElementPath, &(*ppxfcTail)->pwzElementPath);
196 - ExitOnFailure(hr, "failed to get Element Path for XmlConfig: %ls", (*ppxfcTail)->wzId);
196 + ExitOnFailure(hr, "failed to get Element Path for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
197
198 // Get the Verify Path
199 hr = WcaGetRecordFormattedString(hRec, xfqVerifyPath, &(*ppxfcTail)->pwzVerifyPath);
200 - ExitOnFailure(hr, "failed to get Verify Path for XmlConfig: %ls", (*ppxfcTail)->wzId);
200 + ExitOnFailure(hr, "failed to get Verify Path for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
201
202 // Get the name
203 hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData);
204 - ExitOnFailure(hr, "failed to get Name for XmlConfig: %ls", (*ppxfcTail)->wzId);
204 + ExitOnFailure(hr, "failed to get Name for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
205 hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData);
206 ExitOnFailure(hr, "failed to copy name of element");
207
208 // Get the value
209 hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData);
210 - ExitOnFailure(hr, "failed to get Value for XmlConfig: %ls", (*ppxfcTail)->wzId);
210 + ExitOnFailure(hr, "failed to get Value for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
211 hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0);
212 ExitOnFailure(hr, "failed to allocate buffer for value");
213
214 // Get the component attributes
215 hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes);
216 - ExitOnFailure(hr, "failed to get component attributes for XmlConfig: %ls", (*ppxfcTail)->wzId);
216 + ExitOnFailure(hr, "failed to get component attributes for Wix4XmlConfig: %ls", (*ppxfcTail)->wzId);
217 }
218
219 // if we looped through all records all is well
@@ -359,7 +359,7 @@ static HRESULT BeginChangeFile(
359 hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData);
360 ExitOnFailure(hr, "failed to write file contents to rollback custom action data.");
361
362 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlConfigRollback"), pwzRollbackCustomActionData, COST_XMLFILE);
362 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlConfigRollback"), pwzRollbackCustomActionData, COST_XMLFILE);
363 ExitOnFailure(hr, "failed to schedule ExecXmlConfigRollback for file: %ls", pwzFile);
364
365 ReleaseStr(pwzRollbackCustomActionData);
@@ -459,10 +459,10 @@ extern "C" UINT __stdcall SchedXmlConfig(
459 ExitOnFailure(hr, "failed to initialize");
460
461 hr = ReadXmlConfigTable(&pxfcHead, &pxfcTail);
462 - MessageExitOnFailure(hr, msierrXmlConfigFailedRead, "failed to read XmlConfig table");
462 + MessageExitOnFailure(hr, msierrXmlConfigFailedRead, "failed to read Wix4XmlConfig table");
463
464 hr = ProcessChanges(&pxfcHead);
465 - ExitOnFailure(hr, "failed to process XmlConfig changes");
465 + ExitOnFailure(hr, "failed to process Wix4XmlConfig changes");
466
467 // loop through all the xml configurations
468 for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext)
@@ -557,7 +557,7 @@ extern "C" UINT __stdcall SchedXmlConfig(
557 {
558 Assert(0 < cFiles);
559
560 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlConfig"), pwzCustomActionData, cFiles * COST_XMLFILE);
560 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlConfig"), pwzCustomActionData, cFiles * COST_XMLFILE);
561 ExitOnFailure(hr, "failed to schedule ExecXmlConfig action");
562 }
563
src/ca/XmlFile.cpp
+21 -19
@@ -36,9 +36,9 @@ enum eXmlSelectionLanguage
36 };
37
38 LPCWSTR vcsXmlFileQuery =
39 - L"SELECT `XmlFile`.`XmlFile`, `XmlFile`.`File`, `XmlFile`.`ElementPath`, `XmlFile`.`Name`, `XmlFile`.`Value`, "
40 - L"`XmlFile`.`Flags`, `XmlFile`.`Component_`, `Component`.`Attributes` "
41 - L"FROM `XmlFile`,`Component` WHERE `XmlFile`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`";
39 + L"SELECT `Wix4XmlFile`.`Wix4XmlFile`, `Wix4XmlFile`.`File`, `Wix4XmlFile`.`ElementPath`, `Wix4XmlFile`.`Name`, `Wix4XmlFile`.`Value`, "
40 + L"`Wix4XmlFile`.`Flags`, `Wix4XmlFile`.`Component_`, `Component`.`Attributes` "
41 + L"FROM `Wix4XmlFile`,`Component` WHERE `Wix4XmlFile`.`Component_`=`Component`.`Component` ORDER BY `File`, `Sequence`";
42 enum eXmlFileQuery { xfqXmlFile = 1, xfqFile, xfqXPath, xfqName, xfqValue, xfqXmlFlags, xfqComponent, xfqCompAttributes };
43
44 struct XML_FILE_CHANGE
@@ -130,12 +130,14 @@ static HRESULT ReadXmlFileTable(
130 LPWSTR pwzData = NULL;
131
132 // check to see if necessary tables are specified
133 - if (S_FALSE == WcaTableExists(L"XmlFile"))
133 + if (S_FALSE == WcaTableExists(L"Wix4XmlFile"))
134 + {
135 ExitFunction1(hr = S_FALSE);
136 + }
137
138 // loop through all the xml configurations
139 hr = WcaOpenExecuteView(vcsXmlFileQuery, &hView);
138 - ExitOnFailure(hr, "failed to open view on XmlFile table");
140 + ExitOnFailure(hr, "failed to open view on Wix4XmlFile table");
141
142 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
143 {
@@ -144,13 +146,13 @@ static HRESULT ReadXmlFileTable(
146
147 // Get record Id
148 hr = WcaGetRecordString(hRec, xfqXmlFile, &pwzData);
147 - ExitOnFailure(hr, "failed to get XmlFile record Id");
149 + ExitOnFailure(hr, "failed to get Wix4XmlFile record Id");
150 hr = StringCchCopyW((*ppxfcTail)->wzId, countof((*ppxfcTail)->wzId), pwzData);
149 - ExitOnFailure(hr, "failed to copy XmlFile record Id");
151 + ExitOnFailure(hr, "failed to copy Wix4XmlFile record Id");
152
153 // Get component name
154 hr = WcaGetRecordString(hRec, xfqComponent, &pwzData);
153 - ExitOnFailure(hr, "failed to get component name for XmlFile: %ls", (*ppxfcTail)->wzId);
155 + ExitOnFailure(hr, "failed to get component name for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
156
157 // Get the component's state
158 er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &(*ppxfcTail)->isInstalled, &(*ppxfcTail)->isAction);
@@ -158,33 +160,33 @@ static HRESULT ReadXmlFileTable(
160
161 // Get the xml file
162 hr = WcaGetRecordFormattedString(hRec, xfqFile, &pwzData);
161 - ExitOnFailure(hr, "failed to get xml file for XmlFile: %ls", (*ppxfcTail)->wzId);
163 + ExitOnFailure(hr, "failed to get xml file for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
164 hr = StringCchCopyW((*ppxfcTail)->wzFile, countof((*ppxfcTail)->wzFile), pwzData);
165 ExitOnFailure(hr, "failed to copy xml file path");
166
165 - // Get the XmlFile table flags
167 + // Get the Wix4XmlFile table flags
168 hr = WcaGetRecordInteger(hRec, xfqXmlFlags, &(*ppxfcTail)->iXmlFlags);
167 - ExitOnFailure(hr, "failed to get XmlFile flags for XmlFile: %ls", (*ppxfcTail)->wzId);
169 + ExitOnFailure(hr, "failed to get Wix4XmlFile flags for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
170
171 // Get the XPath
172 hr = WcaGetRecordFormattedString(hRec, xfqXPath, &(*ppxfcTail)->pwzElementPath);
171 - ExitOnFailure(hr, "failed to get XPath for XmlFile: %ls", (*ppxfcTail)->wzId);
173 + ExitOnFailure(hr, "failed to get XPath for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
174
175 // Get the name
176 hr = WcaGetRecordFormattedString(hRec, xfqName, &pwzData);
175 - ExitOnFailure(hr, "failed to get Name for XmlFile: %ls", (*ppxfcTail)->wzId);
177 + ExitOnFailure(hr, "failed to get Name for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
178 hr = StringCchCopyW((*ppxfcTail)->wzName, countof((*ppxfcTail)->wzName), pwzData);
179 ExitOnFailure(hr, "failed to copy name of element");
180
181 // Get the value
182 hr = WcaGetRecordFormattedString(hRec, xfqValue, &pwzData);
181 - ExitOnFailure(hr, "failed to get Value for XmlFile: %ls", (*ppxfcTail)->wzId);
183 + ExitOnFailure(hr, "failed to get Value for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
184 hr = StrAllocString(&(*ppxfcTail)->pwzValue, pwzData, 0);
185 ExitOnFailure(hr, "failed to allocate buffer for value");
186
187 // Get the component attributes
188 hr = WcaGetRecordInteger(hRec, xfqCompAttributes, &(*ppxfcTail)->iCompAttributes);
187 - ExitOnFailure(hr, "failed to get component attributes for XmlFile: %ls", (*ppxfcTail)->wzId);
189 + ExitOnFailure(hr, "failed to get component attributes for Wix4XmlFile: %ls", (*ppxfcTail)->wzId);
190 }
191
192 // if we looped through all records all is well
@@ -254,7 +256,7 @@ static HRESULT BeginChangeFile(
256 hr = WcaWriteStreamToCaData(pbData, cbData, &pwzRollbackCustomActionData);
257 ExitOnFailure(hr, "failed to write file contents to rollback custom action data.");
258
257 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlFileRollback"), pwzRollbackCustomActionData, COST_XMLFILE);
259 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlFileRollback"), pwzRollbackCustomActionData, COST_XMLFILE);
260 ExitOnFailure(hr, "failed to schedule ExecXmlFileRollback for file: %ls", pwzFile);
261
262 ReleaseStr(pwzRollbackCustomActionData);
@@ -325,11 +327,11 @@ extern "C" UINT __stdcall SchedXmlFile(
327 hr = ReadXmlFileTable(&pxfcHead, &pxfcTail);
328 if (S_FALSE == hr)
329 {
328 - WcaLog(LOGMSG_VERBOSE, "Skipping SchedXmlFile because XmlFile table not present");
330 + WcaLog(LOGMSG_VERBOSE, "Skipping SchedXmlFile because Wix4XmlFile table not present");
331 ExitFunction1(hr = S_OK);
332 }
333
332 - MessageExitOnFailure(hr, msierrXmlFileFailedRead, "failed to read XmlFile table");
334 + MessageExitOnFailure(hr, msierrXmlFileFailedRead, "failed to read Wix4XmlFile table");
335
336 // loop through all the xml configurations
337 for (pxfc = pxfcHead; pxfc; pxfc = pxfc->pxfcNext)
@@ -454,7 +456,7 @@ extern "C" UINT __stdcall SchedXmlFile(
456 {
457 Assert(0 < cFiles);
458
457 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecXmlFile"), pwzCustomActionData, cFiles * COST_XMLFILE);
459 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecXmlFile"), pwzCustomActionData, cFiles * COST_XMLFILE);
460 ExitOnFailure(hr, "failed to schedule ExecXmlFile action");
461 }
462
src/ca/caDecor.h new
+13
@@ -0,0 +1,13 @@
1 +#pragma once
2 +// 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.
3 +
4 +
5 +#if defined(_M_ARM64)
6 +#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_A64"
7 +#elif defined(_M_AMD64)
8 +#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X64"
9 +#elif defined(_M_ARM)
10 +#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_ARM"
11 +#else
12 +#define CUSTOM_ACTION_DECORATION(f) L"Wix4" f L"_X86"
13 +#endif
src/ca/caSuffix.h deleted
-11
@@ -1,11 +0,0 @@
1 -#pragma once
2 -// 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.
3 -
4 -
5 -#if defined _WIN64
6 -#define PLATFORM_DECORATION(f) f L"_64"
7 -#elif defined ARM
8 -#define PLATFORM_DECORATION(f) f L"_ARM"
9 -#else
10 -#define PLATFORM_DECORATION(f) f
11 -#endif
src/ca/netshortcuts.cpp
+8 -8
@@ -4,7 +4,7 @@
4
5 LPCWSTR vcsShortcutsQuery =
6 L"SELECT `Component_`, `Directory_`, `Name`, `Target`, `Attributes`, `IconFile`, `IconIndex` "
7 - L"FROM `WixInternetShortcut`";
7 + L"FROM `Wix4InternetShortcut`";
8 enum eShortcutsQuery { esqComponent = 1, esqDirectory, esqFilename, esqTarget, esqAttributes, esqIconFile, esqIconIndex };
9 enum eShortcutsAttributes { esaLink = 0, esaURL = 1 };
10
@@ -44,9 +44,9 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts(
44 ExitOnFailure(hr, "failed to initialize WixSchedInternetShortcuts.");
45
46 // anything to do?
47 - if (S_OK != WcaTableExists(L"WixInternetShortcut"))
47 + if (S_OK != WcaTableExists(L"Wix4InternetShortcut"))
48 {
49 - WcaLog(LOGMSG_STANDARD, "WixInternetShortcut table doesn't exist, so there are no Internet shortcuts to process");
49 + WcaLog(LOGMSG_STANDARD, "Wix4InternetShortcut table doesn't exist, so there are no Internet shortcuts to process");
50 goto LExit;
51 }
52
@@ -71,7 +71,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts(
71
72 // query and loop through all the shortcuts
73 hr = WcaOpenExecuteView(vcsShortcutsQuery, &hView);
74 - ExitOnFailure(hr, "failed to open view on WixInternetShortcut table");
74 + ExitOnFailure(hr, "failed to open view on Wix4InternetShortcut table");
75
76 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
77 {
@@ -91,7 +91,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts(
91 hr = WcaGetRecordInteger(hRec, esqIconIndex, &iIconIndex);
92 ExitOnFailure(hr, "failed to get shortcut icon index");
93
94 - // skip processing this WixInternetShortcut row if the component isn't being configured
94 + // skip processing this Wix4InternetShortcut row if the component isn't being configured
95 WCA_TODO todo = WcaGetComponentToDo(pwzComponent);
96 if (WCA_TODO_UNKNOWN == todo)
97 {
@@ -144,7 +144,7 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts(
144 {
145 hr = S_OK;
146 }
147 - ExitOnFailure(hr, "Failure occured while processing WixInternetShortcut table");
147 + ExitOnFailure(hr, "Failure occured while processing Wix4InternetShortcut table");
148
149 // if we have any shortcuts to install
150 if (pwzCustomActionData && *pwzCustomActionData)
@@ -154,9 +154,9 @@ extern "C" UINT __stdcall WixSchedInternetShortcuts(
154 ExitOnFailure(hr, "failed to extend progress bar for InternetShortcuts");
155
156 // provide custom action data to deferred and rollback CAs
157 - hr = WcaSetProperty(PLATFORM_DECORATION(L"WixRollbackInternetShortcuts"), pwzCustomActionData);
157 + hr = WcaSetProperty(CUSTOM_ACTION_DECORATION(L"RollbackInternetShortcuts"), pwzCustomActionData);
158 ExitOnFailure(hr, "failed to set WixRollbackInternetShortcuts rollback custom action data");
159 - hr = WcaSetProperty(PLATFORM_DECORATION(L"WixCreateInternetShortcuts"), pwzCustomActionData);
159 + hr = WcaSetProperty(CUSTOM_ACTION_DECORATION(L"CreateInternetShortcuts"), pwzCustomActionData);
160 ExitOnFailure(hr, "failed to set WixCreateInternetShortcuts custom action data");
161 }
162
src/ca/precomp.h
+1 -1
@@ -51,4 +51,4 @@
51 #include "scasmb.h"
52 #include "scasmbexec.h"
53
54 -#include "caSuffix.h"
54 +#include "caDecor.h"
src/ca/scamanifest.cpp
+38 -38
@@ -2,8 +2,8 @@
2
3 #include "precomp.h"
4
5 -LPCWSTR vcsPerfmonManifestQuery = L"SELECT `Component_`, `File`, `ResourceFileDirectory` FROM `PerfmonManifest`";
6 -LPCWSTR vcsEventManifestQuery = L"SELECT `Component_`, `File` FROM `EventManifest`";
5 +LPCWSTR vcsPerfmonManifestQuery = L"SELECT `Component_`, `File`, `ResourceFileDirectory` FROM `Wix4PerfmonManifest`";
6 +LPCWSTR vcsEventManifestQuery = L"SELECT `Component_`, `File` FROM `Wix4EventManifest`";
7 enum ePerfMonManifestQuery { pfmComponent = 1, pfmFile, pfmResourceFileDir };
8 enum eEventManifestQuery { emComponent = 1, emFile};
9
@@ -46,9 +46,9 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister(
46 ExitFunction1(hr = S_FALSE);
47 }
48 // check to see if necessary tables are specified
49 - if (S_OK != WcaTableExists(L"PerfmonManifest"))
49 + if (S_OK != WcaTableExists(L"Wix4PerfmonManifest"))
50 {
51 - WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestRegister() because PerfmonManifest table not present");
51 + WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestRegister() because Wix4PerfmonManifest table not present");
52 ExitFunction1(hr = S_FALSE);
53 }
54
@@ -79,7 +79,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister(
79 hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile);
80 ExitOnFailure(hr, "failed to copy string in PerfMonManifest");
81
82 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
82 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
83 ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmonManifest action");
84
85 if ( *pwzResourceFilePath )
@@ -95,7 +95,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestRegister(
95
96 WcaLog(LOGMSG_VERBOSE, "RegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand);
97
98 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
98 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
99 ExitOnFailure(hr, "failed to schedule RegisterPerfmonManifest action");
100 }
101
@@ -143,40 +143,40 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestUnregister(
143 ExitFunction1(hr = S_FALSE);
144 }
145 // check to see if necessary tables are specified
146 - if (WcaTableExists(L"PerfmonManifest") != S_OK)
146 + if (WcaTableExists(L"Wix4PerfmonManifest") != S_OK)
147 {
148 - WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestUnregister() because PerfmonManifest table not present");
148 + WcaLog(LOGMSG_VERBOSE, "Skipping ConfigurePerfmonManifestUnregister() because Wix4PerfmonManifest table not present");
149 ExitFunction1(hr = S_FALSE);
150 }
151
152 hr = WcaOpenExecuteView(vcsPerfmonManifestQuery, &hView);
153 - ExitOnFailure(hr, "failed to open view on PerfMonManifest table");
153 + ExitOnFailure(hr, "failed to open view on Wix4PerfmonManifest table");
154 while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK)
155 {
156 // get component install state
157 hr = WcaGetRecordString(hRec, pfmComponent, &pwzData);
158 - ExitOnFailure(hr, "failed to get Component for PerfMonManifest");
158 + ExitOnFailure(hr, "failed to get Component for Wix4PerfmonManifest");
159 er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction);
160 hr = HRESULT_FROM_WIN32(er);
161 - ExitOnFailure(hr, "failed to get Component state for PerfMonManifest");
161 + ExitOnFailure(hr, "failed to get Component state for Wix4PerfmonManifest");
162 if (!WcaIsUninstalling(isInstalled, isAction))
163 {
164 continue;
165 }
166
167 hr = WcaGetRecordFormattedString(hRec, pfmFile, &pwzFile);
168 - ExitOnFailure(hr, "failed to get File for PerfMonManifest");
168 + ExitOnFailure(hr, "failed to get File for Wix4PerfmonManifest");
169
170 hr = WcaGetRecordFormattedString(hRec, pfmResourceFileDir, &pwzResourceFilePath);
171 - ExitOnFailure(hr, "failed to get ApplicationIdentity for PerfMonManifest");
171 + ExitOnFailure(hr, "failed to get ApplicationIdentity for Wix4PerfmonManifest");
172 size_t iResourcePath = lstrlenW(pwzResourceFilePath);
173 if ( iResourcePath > 0 && *(pwzResourceFilePath + iResourcePath -1) == L'\\')
174 *(pwzResourceFilePath + iResourcePath -1) = 0; //remove the trailing '\'
175
176 hr = StrAllocFormatted(&pwzCommand, L"\"lodctr.exe\" /m:\"%s\" \"%s\"", pwzFile, pwzResourceFilePath);
177 - ExitOnFailure(hr, "failed to copy string in PerfMonManifest");
177 + ExitOnFailure(hr, "failed to copy string in Wix4PerfmonManifest");
178
179 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
179 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
180 ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmonManifest action");
181
182 hr = StrAllocFormatted(&pwzCommand, L"\"unlodctr.exe\" /m:\"%s\"", pwzFile);
@@ -184,7 +184,7 @@ extern "C" UINT __stdcall ConfigurePerfmonManifestUnregister(
184
185 WcaLog(LOGMSG_VERBOSE, "UnRegisterPerfmonManifest's CustomActionData: '%ls'", pwzCommand);
186
187 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
187 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfmonManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
188 ExitOnFailure(hr, "failed to schedule UnregisterPerfmonManifest action");
189 }
190
@@ -231,41 +231,41 @@ extern "C" UINT __stdcall ConfigureEventManifestRegister(
231 ExitFunction1(hr = S_FALSE);
232 }
233 // check to see if necessary tables are specified
234 - if (S_OK != WcaTableExists(L"EventManifest"))
234 + if (S_OK != WcaTableExists(L"Wix4EventManifest"))
235 {
236 - WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestRegister() because EventManifest table not present");
236 + WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestRegister() because Wix4EventManifest table not present");
237 ExitFunction1(hr = S_FALSE);
238 }
239
240 hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView);
241 - ExitOnFailure(hr, "failed to open view on EventManifest table");
241 + ExitOnFailure(hr, "failed to open view on Wix4EventManifest table");
242 while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK)
243 {
244 // get component install state
245 hr = WcaGetRecordString(hRec, emComponent, &pwzData);
246 - ExitOnFailure(hr, "failed to get Component for EventManifest");
246 + ExitOnFailure(hr, "failed to get Component for Wix4EventManifest");
247 er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction);
248 hr = HRESULT_FROM_WIN32(er);
249 - ExitOnFailure(hr, "failed to get Component state for EventManifest");
249 + ExitOnFailure(hr, "failed to get Component state for Wix4EventManifest");
250 if (!WcaIsInstalling(isInstalled, isAction))
251 {
252 continue;
253 }
254
255 hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile);
256 - ExitOnFailure(hr, "failed to get File for EventManifest");
256 + ExitOnFailure(hr, "failed to get File for Wix4EventManifest");
257
258 hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile);
259 - ExitOnFailure(hr, "failed to copy string in EventManifest");
259 + ExitOnFailure(hr, "failed to copy string in Wix4EventManifest");
260
261 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
261 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
262 ExitOnFailure(hr, "failed to schedule RollbackRegisterEventManifest action");
263
264 hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile);
265 - ExitOnFailure(hr, "failed to copy string in EventManifest");
265 + ExitOnFailure(hr, "failed to copy string in Wix4EventManifest");
266 WcaLog(LOGMSG_VERBOSE, "RegisterEventManifest's CustomActionData: '%ls'", pwzCommand);
267
268 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterEventManifest"), pwzCommand, COST_EVENTMANIFEST_REGISTER);
268 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterEventManifest"), pwzCommand, COST_EVENTMANIFEST_REGISTER);
269 ExitOnFailure(hr, "failed to schedule RegisterEventManifest action");
270 }
271
@@ -273,7 +273,7 @@ extern "C" UINT __stdcall ConfigureEventManifestRegister(
273 {
274 hr = S_OK;
275 }
276 - ExitOnFailure(hr, "Failure while processing EventManifest");
276 + ExitOnFailure(hr, "Failure while processing Wix4EventManifest");
277
278 hr = S_OK;
279
@@ -313,22 +313,22 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister(
313 ExitFunction1(hr = S_FALSE);
314 }
315 // check to see if necessary tables are specified
316 - if (S_OK != WcaTableExists(L"EventManifest"))
316 + if (S_OK != WcaTableExists(L"Wix4EventManifest"))
317 {
318 - WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestUnregister() because EventManifest table not present");
318 + WcaLog(LOGMSG_VERBOSE, "Skipping ConfigureEventManifestUnregister() because Wix4EventManifest table not present");
319 ExitFunction1(hr = S_FALSE);
320 }
321
322 hr = WcaOpenExecuteView(vcsEventManifestQuery, &hView);
323 - ExitOnFailure(hr, "failed to open view on EventManifest table");
323 + ExitOnFailure(hr, "failed to open view on Wix4EventManifest table");
324 while ((hr = WcaFetchRecord(hView, &hRec)) == S_OK)
325 {
326 // get component install state
327 hr = WcaGetRecordString(hRec, emComponent, &pwzData);
328 - ExitOnFailure(hr, "failed to get Component for EventManifest");
328 + ExitOnFailure(hr, "failed to get Component for Wix4EventManifest");
329 er = ::MsiGetComponentStateW(hInstall, pwzData, &isInstalled, &isAction);
330 hr = HRESULT_FROM_WIN32(er);
331 - ExitOnFailure(hr, "failed to get Component state for EventManifest");
331 + ExitOnFailure(hr, "failed to get Component state for Wix4EventManifest");
332
333 // nothing to do on an install
334 // schedule the rollback action when reinstalling to re-register pre-patch manifest
@@ -338,22 +338,22 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister(
338 }
339
340 hr = WcaGetRecordFormattedString(hRec, emFile, &pwzFile);
341 - ExitOnFailure(hr, "failed to get File for EventManifest");
341 + ExitOnFailure(hr, "failed to get File for Wix4EventManifest");
342
343 hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" im \"%s\"", pwzFile);
344 - ExitOnFailure(hr, "failed to copy string in EventManifest");
344 + ExitOnFailure(hr, "failed to copy string in Wix4EventManifest");
345
346 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
346 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_REGISTER);
347 ExitOnFailure(hr, "failed to schedule RollbackUnregisterEventManifest action");
348
349 // no need to uninstall on a repair/patch. Register action will re-register and update the manifest.
350 if (!WcaIsReInstalling(isInstalled, isAction))
351 {
352 hr = StrAllocFormatted(&pwzCommand, L"\"wevtutil.exe\" um \"%s\"", pwzFile);
353 - ExitOnFailure(hr, "failed to copy string in EventManifest");
353 + ExitOnFailure(hr, "failed to copy string in Wix4EventManifest");
354 WcaLog(LOGMSG_VERBOSE, "UnregisterEventManifest's CustomActionData: '%ls'", pwzCommand);
355
356 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
356 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterEventManifest"), pwzCommand, COST_PERFMONMANIFEST_UNREGISTER);
357 ExitOnFailure(hr, "failed to schedule UnregisterEventManifest action");
358 }
359 }
@@ -362,7 +362,7 @@ extern "C" UINT __stdcall ConfigureEventManifestUnregister(
362 {
363 hr = S_OK;
364 }
365 - ExitOnFailure(hr, "Failure while processing EventManifest");
365 + ExitOnFailure(hr, "Failure while processing Wix4EventManifest");
366
367 hr = S_OK;
368
src/ca/scaperf.cpp
+32 -32
@@ -2,10 +2,10 @@
2
3 #include "precomp.h"
4
5 -LPCWSTR vcsPerfCounterDataQuery = L"SELECT `PerformanceCategory`, `Component_`, `Name`, `IniData`, `ConstantData` FROM `PerformanceCategory`";
5 +LPCWSTR vcsPerfCounterDataQuery = L"SELECT `Wix4PerformanceCategory`, `Component_`, `Name`, `IniData`, `ConstantData` FROM `Wix4PerformanceCategory`";
6 enum ePerfCounterDataQuery { pcdqId = 1, pcdqComponent, pcdqName, pcdqIniData, pcdqConstantData };
7
8 -LPCWSTR vcsPerfMonQuery = L"SELECT `Component_`, `File`, `Name` FROM `Perfmon`";
8 +LPCWSTR vcsPerfMonQuery = L"SELECT `Component_`, `File`, `Name` FROM `Wix4Perfmon`";
9 enum ePerfMonQuery { pmqComponent = 1, pmqFile, pmqName };
10
11
@@ -32,7 +32,7 @@ extern "C" UINT __stdcall InstallPerfCounterData(
32 ExitOnFailure(hr, "Failed to initialize InstallPerfCounterData.");
33
34 hr = ProcessPerformanceCategory(hInstall, TRUE);
35 - MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to process PerformanceCategory table.");
35 + MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to process Wix4PerformanceCategory table.");
36
37 LExit:
38 er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
@@ -57,7 +57,7 @@ extern "C" UINT __stdcall UninstallPerfCounterData(
57 ExitOnFailure(hr, "Failed to initialize UninstallPerfCounterData.");
58
59 hr = ProcessPerformanceCategory(hInstall, FALSE);
60 - MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to process PerformanceCategory table.");
60 + MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to process Wix4PerformanceCategory table.");
61
62 LExit:
63 er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
@@ -85,9 +85,9 @@ extern "C" UINT __stdcall ConfigurePerfmonInstall(
85 ExitOnFailure(hr, "Failed to initialize");
86
87 // check to see if necessary tables are specified
88 - if (S_OK != WcaTableExists(L"Perfmon"))
88 + if (S_OK != WcaTableExists(L"Wix4Perfmon"))
89 {
90 - WcaLog(LOGMSG_VERBOSE, "Skipping RegisterPerfmon() because Perfmon table not present");
90 + WcaLog(LOGMSG_VERBOSE, "Skipping RegisterPerfmon() because Wix4Perfmon table not present");
91 ExitFunction1(hr = S_FALSE);
92 }
93
@@ -113,9 +113,9 @@ extern "C" UINT __stdcall ConfigurePerfmonInstall(
113 ExitOnFailure(hr, "failed to get File for PerfMon");
114
115 WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonInstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile);
116 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfmon"), pwzFile, COST_PERFMON_REGISTER);
116 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfmon"), pwzFile, COST_PERFMON_REGISTER);
117 ExitOnFailure(hr, "failed to schedule RegisterPerfmon action");
118 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER);
118 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER);
119 ExitOnFailure(hr, "failed to schedule RollbackRegisterPerfmon action");
120 }
121
@@ -158,9 +158,9 @@ extern "C" UINT __stdcall ConfigurePerfmonUninstall(
158 ExitOnFailure(hr, "Failed to initialize");
159
160 // check to see if necessary tables are specified
161 - if (WcaTableExists(L"Perfmon") != S_OK)
161 + if (WcaTableExists(L"Wix4Perfmon") != S_OK)
162 {
163 - WcaLog(LOGMSG_VERBOSE, "Skipping UnregisterPerfmon() because Perfmon table not present");
163 + WcaLog(LOGMSG_VERBOSE, "Skipping UnregisterPerfmon() because Wix4Perfmon table not present");
164 ExitFunction1(hr = S_FALSE);
165 }
166
@@ -186,9 +186,9 @@ extern "C" UINT __stdcall ConfigurePerfmonUninstall(
186 ExitOnFailure(hr, "failed to get File for PerfMon");
187
188 WcaLog(LOGMSG_VERBOSE, "ConfigurePerfmonUninstall's CustomActionData: '%ls', '%ls'", pwzName, pwzFile);
189 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER);
189 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfmon"), pwzName, COST_PERFMON_UNREGISTER);
190 ExitOnFailure(hr, "failed to schedule UnregisterPerfmon action");
191 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfmon"), pwzFile, COST_PERFMON_REGISTER);
191 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfmon"), pwzFile, COST_PERFMON_REGISTER);
192 ExitOnFailure(hr, "failed to schedule RollbackUnregisterPerfmon action");
193 }
194
@@ -229,26 +229,26 @@ static HRESULT ProcessPerformanceCategory(
229 LPWSTR pwzCustomActionData = NULL;
230
231 // check to see if necessary tables are specified
232 - if (S_OK != WcaTableExists(L"PerformanceCategory"))
232 + if (S_OK != WcaTableExists(L"Wix4PerformanceCategory"))
233 {
234 ExitFunction1(hr = S_FALSE);
235 }
236
237 hr = WcaOpenExecuteView(vcsPerfCounterDataQuery, &hView);
238 - ExitOnFailure(hr, "failed to open view on PerformanceCategory table");
238 + ExitOnFailure(hr, "failed to open view on Wix4PerformanceCategory table");
239 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
240 {
241 hr = WcaGetRecordString(hRec, pcdqId, &pwzId);
242 - ExitOnFailure(hr, "Failed to get id for PerformanceCategory.");
242 + ExitOnFailure(hr, "Failed to get id for Wix4PerformanceCategory.");
243
244 // Check to see if the Component is being installed or uninstalled
245 // when we are processing the same.
246 hr = WcaGetRecordString(hRec, pcdqComponent, &pwzComponent);
247 - ExitOnFailure(hr, "Failed to get Component for PerformanceCategory: %ls", pwzId);
247 + ExitOnFailure(hr, "Failed to get Component for Wix4PerformanceCategory: %ls", pwzId);
248
249 er = ::MsiGetComponentStateW(hInstall, pwzComponent, &isInstalled, &isAction);
250 hr = HRESULT_FROM_WIN32(er);
251 - ExitOnFailure(hr, "Failed to get Component state for PerformanceCategory: %ls", pwzId);
251 + ExitOnFailure(hr, "Failed to get Component state for Wix4PerformanceCategory: %ls", pwzId);
252
253 if ((fInstall && !WcaIsInstalling(isInstalled, isAction)) ||
254 (!fInstall && !WcaIsUninstalling(isInstalled, isAction)))
@@ -257,45 +257,45 @@ static HRESULT ProcessPerformanceCategory(
257 }
258
259 hr = WcaGetRecordString(hRec, pcdqName, &pwzName);
260 - ExitOnFailure(hr, "Failed to get Name for PerformanceCategory: %ls", pwzId);
260 + ExitOnFailure(hr, "Failed to get Name for Wix4PerformanceCategory: %ls", pwzId);
261 hr = WcaWriteStringToCaData(pwzName, &pwzCustomActionData);
262 - ExitOnFailure(hr, "Failed to add Name to CustomActionData for PerformanceCategory: %ls", pwzId);
262 + ExitOnFailure(hr, "Failed to add Name to CustomActionData for Wix4PerformanceCategory: %ls", pwzId);
263
264 hr = WcaGetRecordString(hRec, pcdqIniData, &pwzData);
265 - ExitOnFailure(hr, "Failed to get IniData for PerformanceCategory: %ls", pwzId);
265 + ExitOnFailure(hr, "Failed to get IniData for Wix4PerformanceCategory: %ls", pwzId);
266 hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData);
267 - ExitOnFailure(hr, "Failed to add IniData to CustomActionData for PerformanceCategory: %ls", pwzId);
267 + ExitOnFailure(hr, "Failed to add IniData to CustomActionData for Wix4PerformanceCategory: %ls", pwzId);
268
269 hr = WcaGetRecordString(hRec, pcdqConstantData, &pwzData);
270 - ExitOnFailure(hr, "Failed to get ConstantData for PerformanceCategory: %ls", pwzId);
270 + ExitOnFailure(hr, "Failed to get ConstantData for Wix4PerformanceCategory: %ls", pwzId);
271 hr = WcaWriteStringToCaData(pwzData, &pwzCustomActionData);
272 - ExitOnFailure(hr, "Failed to add ConstantData to CustomActionData for PerformanceCategory: %ls", pwzId);
272 + ExitOnFailure(hr, "Failed to add ConstantData to CustomActionData for Wix4PerformanceCategory: %ls", pwzId);
273 }
274
275 if (hr == E_NOMOREITEMS)
276 {
277 hr = S_OK;
278 }
279 - ExitOnFailure(hr, "Failure while processing PerformanceCategory table.");
279 + ExitOnFailure(hr, "Failure while processing Wix4PerformanceCategory table.");
280
281 // If there was any data built up, schedule it for execution.
282 if (pwzCustomActionData)
283 {
284 if (fInstall)
285 {
286 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackRegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER);
287 - ExitOnFailure(hr, "Failed to schedule RollbackRegisterPerfCounterData action for PerformanceCategory: %ls", pwzId);
286 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackRegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER);
287 + ExitOnFailure(hr, "Failed to schedule RollbackRegisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId);
288
289 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER);
290 - ExitOnFailure(hr, "Failed to schedule RegisterPerfCounterData action for PerformanceCategory: %ls", pwzId);
289 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RegisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER);
290 + ExitOnFailure(hr, "Failed to schedule RegisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId);
291 }
292 else
293 {
294 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackUnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER);
295 - ExitOnFailure(hr, "Failed to schedule RollbackUnregisterPerfCounterData action for PerformanceCategory: %ls", pwzId);
294 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackUnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_REGISTER);
295 + ExitOnFailure(hr, "Failed to schedule RollbackUnregisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId);
296
297 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"UnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER);
298 - ExitOnFailure(hr, "Failed to schedule UnregisterPerfCounterData action for PerformanceCategory: %ls", pwzId);
297 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"UnregisterPerfCounterData"), pwzCustomActionData, COST_PERFMON_UNREGISTER);
298 + ExitOnFailure(hr, "Failed to schedule UnregisterPerfCounterData action for Wix4PerformanceCategory: %ls", pwzId);
299 }
300 }
301
src/ca/scaperfexec.cpp
+2 -2
@@ -35,7 +35,7 @@ extern "C" UINT __stdcall RegisterPerfCounterData(
35 ExitOnFailure(hr, "Failed to initialize RegisterPerfCounterData.");
36
37 hr = ExecutePerfCounterData(hInstall, TRUE);
38 - MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to execute PerformanceCategory table.");
38 + MessageExitOnFailure(hr, msierrInstallPerfCounterData, "Failed to execute Wix4PerformanceCategory table.");
39
40 LExit:
41 er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
@@ -61,7 +61,7 @@ extern "C" UINT __stdcall UnregisterPerfCounterData(
61 ExitOnFailure(hr, "Failed to initialize UnregisterPerfCounterData.");
62
63 hr = ExecutePerfCounterData(hInstall, FALSE);
64 - MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to execute PerformanceCategory table.");
64 + MessageExitOnFailure(hr, msierrUninstallPerfCounterData, "Failed to execute Wix4PerformanceCategory table.");
65
66 LExit:
67 er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
src/ca/scasched.cpp
+8 -8
@@ -21,14 +21,14 @@ extern "C" UINT __stdcall ConfigureSmbInstall(
21 ExitOnFailure(hr, "Failed to initialize");
22
23 // check to see if necessary tables are specified
24 - if (WcaTableExists(L"FileShare") != S_OK)
24 + if (WcaTableExists(L"Wix4FileShare") != S_OK)
25 {
26 - WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no FileShare table");
26 + WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no Wix4FileShare table");
27 ExitFunction1(hr = S_FALSE);
28 }
29
30 hr = ScaSmbRead(&pssList);
31 - ExitOnFailure(hr, "failed to read FileShare table");
31 + ExitOnFailure(hr, "failed to read Wix4FileShare table");
32
33 hr = ScaSmbInstall(pssList);
34 ExitOnFailure(hr, "failed to install FileShares");
@@ -43,7 +43,7 @@ LExit:
43
44
45 /********************************************************************
46 -ConfigureSmb - CUSTOM ACTION ENTRY POINT for installing fileshare settings
46 +ConfigureSmb - CUSTOM ACTION ENTRY POINT for uninstalling fileshare settings
47
48 ********************************************************************/
49 extern "C" UINT __stdcall ConfigureSmbUninstall(
@@ -60,14 +60,14 @@ extern "C" UINT __stdcall ConfigureSmbUninstall(
60 ExitOnFailure(hr, "Failed to initialize");
61
62 // check to see if necessary tables are specified
63 - if (WcaTableExists(L"FileShare") != S_OK)
63 + if (WcaTableExists(L"Wix4FileShare") != S_OK)
64 {
65 - WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no FileShare table");
65 + WcaLog(LOGMSG_VERBOSE, "Skipping SMB CustomAction, no Wix4FileShare table");
66 ExitFunction1(hr = S_FALSE);
67 }
68
69 hr = ScaSmbRead(&pssList);
70 - ExitOnFailure(hr, "failed to read FileShare table");
70 + ExitOnFailure(hr, "failed to read Wix4FileShare table");
71
72 hr = ScaSmbUninstall(pssList);
73 ExitOnFailure(hr, "failed to uninstall FileShares");
@@ -106,7 +106,7 @@ extern "C" UINT __stdcall ConfigureUsers(
106 fInitializedCom = TRUE;
107
108 hr = ScaUserRead(&psuList);
109 - ExitOnFailure(hr, "failed to read User table");
109 + ExitOnFailure(hr, "failed to read Wix4User table");
110
111 hr = ScaUserExecute(psuList);
112 ExitOnFailure(hr, "failed to add/remove User actions");
src/ca/scasmb.h
+1 -1
@@ -5,7 +5,7 @@
5 #include "scauser.h"
6
7 // structs
8 -// Structure used to hold and extra user/permission pairs from the FileSharePermissions Table
8 +// Structure used to hold and extra user/permission pairs from the Wix4FileSharePermissions Table
9 struct SCA_SMB_EX_USER_PERMS
10 {
11 int nPermissions;
src/ca/scasmbsched.cpp
+25 -25
@@ -92,8 +92,8 @@ void ScaExUserPermsSmbFreeList(SCA_SMB_EX_USER_PERMS* pExUserPermsList)
92 }
93
94 // sql query constants
95 -LPCWSTR vcsSmbQuery = L"SELECT `FileShare`, `ShareName`, `Description`, `Directory_`, "
96 - L"`Component_`, `User_`, `Permissions` FROM `FileShare`";
95 +LPCWSTR vcsSmbQuery = L"SELECT `Wix4FileShare`, `ShareName`, `Description`, `Directory_`, "
96 + L"`Component_`, `User_`, `Permissions` FROM `Wix4FileShare`";
97
98 enum eSmbQuery {
99 ssqFileShare = 1,
@@ -122,26 +122,26 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList)
122 SCA_SMB* pss = NULL;
123 BOOL bUserPermissionsTableExists = FALSE;
124
125 - if (S_OK != WcaTableExists(L"FileShare"))
125 + if (S_OK != WcaTableExists(L"Wix4FileShare"))
126 {
127 - WcaLog(LOGMSG_VERBOSE, "Skipping ScaSmbCreateShare() - FileShare table not present");
127 + WcaLog(LOGMSG_VERBOSE, "Skipping ScaSmbCreateShare() - Wix4FileShare table not present");
128 ExitFunction1(hr = S_FALSE);
129 }
130
131 - if (S_OK == WcaTableExists(L"FileSharePermissions"))
131 + if (S_OK == WcaTableExists(L"Wix4FileSharePermissions"))
132 {
133 bUserPermissionsTableExists = TRUE;
134 }
135 else
136 {
137 - WcaLog(LOGMSG_VERBOSE, "No Additional Permissions - FileSharePermissions table not present");
137 + WcaLog(LOGMSG_VERBOSE, "No Additional Permissions - Wix4FileSharePermissions table not present");
138 }
139
140 WcaLog(LOGMSG_VERBOSE, "Reading File Share Tables");
141
142 // loop through all the fileshares
143 hr = WcaOpenExecuteView(vcsSmbQuery, &hView);
144 - ExitOnFailure(hr, "Failed to open view on FileShare table");
144 + ExitOnFailure(hr, "Failed to open view on Wix4FileShare table");
145 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
146 {
147 pss = NewSmb();
@@ -154,33 +154,33 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList)
154 ::ZeroMemory(pss, sizeof(*pss));
155
156 hr = WcaGetRecordString(hRec, ssqFileShare, &pwzData);
157 - ExitOnFailure(hr, "Failed to get FileShare.FileShare");
157 + ExitOnFailure(hr, "Failed to get Wix4FileShare.Wix4FileShare");
158 hr = ::StringCchCopyW(pss->wzId, countof(pss->wzId), pwzData);
159 ExitOnFailure(hr, "Failed to copy ID string to smb object");
160
161 hr = WcaGetRecordFormattedString(hRec, ssqShareName, &pwzData);
162 - ExitOnFailure(hr, "Failed to get FileShare.ShareName");
162 + ExitOnFailure(hr, "Failed to get Wix4FileShare.ShareName");
163 hr = ::StringCchCopyW(pss->wzShareName, countof(pss->wzShareName), pwzData);
164 ExitOnFailure(hr, "Failed to copy share name string to smb object");
165
166 hr = WcaGetRecordString(hRec, ssqComponent, &pwzData);
167 - ExitOnFailure(hr, "Failed to get Component for FileShare: '%ls'", pss->wzShareName);
167 + ExitOnFailure(hr, "Failed to get Component for Wix4FileShare: '%ls'", pss->wzShareName);
168 hr = ::StringCchCopyW(pss->wzComponent, countof(pss->wzComponent), pwzData);
169 ExitOnFailure(hr, "Failed to copy component string to smb object");
170
171 hr = WcaGetRecordFormattedString(hRec, ssqDescription, &pwzData);
172 - ExitOnFailure(hr, "Failed to get Share Description for FileShare: '%ls'", pss->wzShareName);
172 + ExitOnFailure(hr, "Failed to get Share Description for Wix4FileShare: '%ls'", pss->wzShareName);
173 hr = ::StringCchCopyW(pss->wzDescription, countof(pss->wzDescription), pwzData);
174 ExitOnFailure(hr, "Failed to copy description string to smb object");
175
176 // get user info from the user table
177 hr = WcaGetRecordFormattedString(hRec, ssqUser, &pwzData);
178 - ExitOnFailure(hr, "Failed to get User record for FileShare: '%ls'", pss->wzShareName);
178 + ExitOnFailure(hr, "Failed to get Wix4User record for Wix4FileShare: '%ls'", pss->wzShareName);
179
180 // get component install state
181 er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pss->wzComponent, &pss->isInstalled, &pss->isAction);
182 hr = HRESULT_FROM_WIN32(er);
183 - ExitOnFailure(hr, "Failed to get Component state for FileShare");
183 + ExitOnFailure(hr, "Failed to get Component state for Wix4FileShare");
184
185 // if a user was specified
186 if (*pwzData)
@@ -200,7 +200,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList)
200
201 // get the share's directory
202 hr = WcaGetRecordString(hRec, ssqDirectory, &pwzData);
203 - ExitOnFailure(hr, "Failed to get directory for FileShare: '%ls'", pss->wzShareName);
203 + ExitOnFailure(hr, "Failed to get directory for Wix4FileShare: '%ls'", pss->wzShareName);
204
205 WCHAR wzPath[MAX_PATH];
206 DWORD dwLen;
@@ -236,7 +236,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList)
236 ExitOnFailure(hr, "Failed to copy directory string to smb object");
237
238 hr = WcaGetRecordInteger(hRec, ssqPermissions, &pss->nPermissions);
239 - ExitOnFailure(hr, "Failed to get FileShare.Permissions");
239 + ExitOnFailure(hr, "Failed to get Wix4FileShare.Permissions");
240
241 // Check to see if additional user & permissions are specified for this share
242 if (bUserPermissionsTableExists)
@@ -253,7 +253,7 @@ HRESULT ScaSmbRead(SCA_SMB** ppssList)
253 {
254 hr = S_OK;
255 }
256 - ExitOnFailure(hr, "Failure occured while processing FileShare table");
256 + ExitOnFailure(hr, "Failure occured while processing Wix4FileShare table");
257
258 LExit:
259 // if anything was left over after an error clean it all up
@@ -420,10 +420,10 @@ HRESULT SchedCreateSmb(SCA_SMB* pss)
420 }
421
422 // Schedule the rollback first
423 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateSmbRollback"), pwzRollbackCustomActionData, COST_SMB_DROPSMB);
423 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateSmbRollback"), pwzRollbackCustomActionData, COST_SMB_DROPSMB);
424 ExitOnFailure(hr, "Failed to schedule DropSmb action");
425
426 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateSmb"), pwzCustomActionData, COST_SMB_CREATESMB);
426 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateSmb"), pwzCustomActionData, COST_SMB_CREATESMB);
427 ExitOnFailure(hr, "Failed to schedule CreateSmb action");
428
429 LExit:
@@ -511,14 +511,14 @@ HRESULT SchedDropSmb(SCA_SMB* pss)
511 ExitOnFailure(hr, "Failed to add permissions to CustomActionData");
512 }
513
514 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"DropSmbRollback"), pwzRollbackCustomActionData, COST_SMB_CREATESMB);
514 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"DropSmbRollback"), pwzRollbackCustomActionData, COST_SMB_CREATESMB);
515 ExitOnFailure(hr, "Failed to schedule DropSmbRollback action");
516
517 // DropSMB
518 hr = WcaWriteStringToCaData(pss->wzShareName, &pwzCustomActionData);
519 ExitOnFailure(hr, "failed to add ShareName to CustomActionData");
520
521 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"DropSmb"), pwzCustomActionData, COST_SMB_DROPSMB);
521 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"DropSmb"), pwzCustomActionData, COST_SMB_DROPSMB);
522 ExitOnFailure(hr, "Failed to schedule DropSmb action");
523
524 LExit:
@@ -558,7 +558,7 @@ LExit:
558 }
559
560 LPCWSTR vcsSmbExUserPermsQuery = L"SELECT `FileShare_`,`User_`,`Permissions` "
561 - L"FROM `FileSharePermissions` WHERE `FileShare_`=?";
561 + L"FROM `Wix4FileSharePermissions` WHERE `FileShare_`=?";
562
563 enum eSmbUserPermsQuery {
564 ssupqFileShare = 1,
@@ -588,9 +588,9 @@ HRESULT ScaSmbExPermsRead(SCA_SMB* pss)
588 ExitOnFailure(hr, "Failed to look up FileShare");
589
590 hr = WcaOpenView(vcsSmbExUserPermsQuery, &hView);
591 - ExitOnFailure(hr, "Failed to open view on FileSharePermissions table");
591 + ExitOnFailure(hr, "Failed to open view on Wix4FileSharePermissions table");
592 hr = WcaExecuteView(hView, hRec);
593 - ExitOnFailure(hr, "Failed to execute view on FileSharePermissions table");
593 + ExitOnFailure(hr, "Failed to execute view on Wix4FileSharePermissions table");
594
595 // loop through all User/Permissions paris returned
596 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
@@ -605,12 +605,12 @@ HRESULT ScaSmbExPermsRead(SCA_SMB* pss)
605 ::ZeroMemory(pExUserPerms, sizeof(*pExUserPerms));
606
607 hr = WcaGetRecordString(hRec, ssupqUser, &pwzData);
608 - ExitOnFailure(hr, "Failed to get FileSharePermissions.User");
608 + ExitOnFailure(hr, "Failed to get Wix4FileSharePermissions.User");
609 hr = ScaGetUser(pwzData, &pExUserPerms->scau);
610 ExitOnFailure(hr, "Failed to get user information for fileshare: '%ls'", pss->wzShareName);
611
612 hr = WcaGetRecordInteger(hRec, ssupqPermissions, &pExUserPerms->nPermissions);
613 - ExitOnFailure(hr, "Failed to get FileSharePermissions.Permissions");
613 + ExitOnFailure(hr, "Failed to get Wix4FileSharePermissions.Permissions");
614 pExUserPerms->accessMode = SET_ACCESS; // we only support SET_ACCESS here
615
616 pExUserPermsList = AddExUserPermsSmbToList(pExUserPermsList, pExUserPerms);
src/ca/scauser.cpp
+54 -54
@@ -2,16 +2,16 @@
2
3 #include "precomp.h"
4
5 -LPCWSTR vcsUserQuery = L"SELECT `User`, `Component_`, `Name`, `Domain`, `Password` FROM `User` WHERE `User`=?";
5 +LPCWSTR vcsUserQuery = L"SELECT `Wix4User`, `Component_`, `Name`, `Domain`, `Password` FROM `Wix4User` WHERE `Wix4User`=?";
6 enum eUserQuery { vuqUser = 1, vuqComponent, vuqName, vuqDomain, vuqPassword };
7
8 -LPCWSTR vcsGroupQuery = L"SELECT `Group`, `Component_`, `Name`, `Domain` FROM `Group` WHERE `Group`=?";
8 +LPCWSTR vcsGroupQuery = L"SELECT `Wix4Group`, `Component_`, `Name`, `Domain` FROM `Wix4Group` WHERE `Wix4Group`=?";
9 enum eGroupQuery { vgqGroup = 1, vgqComponent, vgqName, vgqDomain };
10
11 -LPCWSTR vcsUserGroupQuery = L"SELECT `User_`, `Group_` FROM `UserGroup` WHERE `User_`=?";
11 +LPCWSTR vcsUserGroupQuery = L"SELECT `Wix4User_`, `Wix4Group_` FROM `Wix4UserGroup` WHERE `Wix4User_`=?";
12 enum eUserGroupQuery { vugqUser = 1, vugqGroup };
13
14 -LPCWSTR vActionableQuery = L"SELECT `User`,`Component_`,`Name`,`Domain`,`Password`,`Attributes` FROM `User` WHERE `Component_` IS NOT NULL";
14 +LPCWSTR vActionableQuery = L"SELECT `Wix4User`,`Component_`,`Name`,`Domain`,`Password`,`Attributes` FROM `Wix4User` WHERE `Component_` IS NOT NULL";
15 enum eActionableQuery { vaqUser = 1, vaqComponent, vaqName, vaqDomain, vaqPassword, vaqAttributes };
16
17
@@ -51,46 +51,46 @@ HRESULT __stdcall ScaGetUser(
51 ExitOnFailure(hr, "Failed to look up User");
52
53 hr = WcaOpenView(vcsUserQuery, &hView);
54 - ExitOnFailure(hr, "Failed to open view on User table");
54 + ExitOnFailure(hr, "Failed to open view on Wix4User table");
55 hr = WcaExecuteView(hView, hRec);
56 - ExitOnFailure(hr, "Failed to execute view on User table");
56 + ExitOnFailure(hr, "Failed to execute view on Wix4User table");
57
58 hr = WcaFetchSingleRecord(hView, &hRec);
59 if (S_OK == hr)
60 {
61 hr = WcaGetRecordString(hRec, vuqUser, &pwzData);
62 - ExitOnFailure(hr, "Failed to get User.User");
62 + ExitOnFailure(hr, "Failed to get Wix4User.User");
63 hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData);
64 ExitOnFailure(hr, "Failed to copy key string to user object");
65
66 hr = WcaGetRecordString(hRec, vuqComponent, &pwzData);
67 - ExitOnFailure(hr, "Failed to get User.Component_");
67 + ExitOnFailure(hr, "Failed to get Wix4User.Component_");
68 hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData);
69 ExitOnFailure(hr, "Failed to copy component string to user object");
70
71 hr = WcaGetRecordFormattedString(hRec, vuqName, &pwzData);
72 - ExitOnFailure(hr, "Failed to get User.Name");
72 + ExitOnFailure(hr, "Failed to get Wix4User.Name");
73 hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData);
74 ExitOnFailure(hr, "Failed to copy name string to user object");
75
76 hr = WcaGetRecordFormattedString(hRec, vuqDomain, &pwzData);
77 - ExitOnFailure(hr, "Failed to get User.Domain");
77 + ExitOnFailure(hr, "Failed to get Wix4User.Domain");
78 hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData);
79 ExitOnFailure(hr, "Failed to copy domain string to user object");
80
81 hr = WcaGetRecordFormattedString(hRec, vuqPassword, &pwzData);
82 - ExitOnFailure(hr, "Failed to get User.Password");
82 + ExitOnFailure(hr, "Failed to get Wix4User.Password");
83 hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData);
84 ExitOnFailure(hr, "Failed to copy password string to user object");
85 }
86 else if (E_NOMOREITEMS == hr)
87 {
88 - WcaLog(LOGMSG_STANDARD, "Error: Cannot locate User.User='%ls'", wzUser);
88 + WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4User.User='%ls'", wzUser);
89 hr = E_FAIL;
90 }
91 else
92 {
93 - ExitOnFailure(hr, "Error or found multiple matching User rows");
93 + ExitOnFailure(hr, "Error or found multiple matching Wix4User rows");
94 }
95
96 LExit:
@@ -131,42 +131,42 @@ HRESULT __stdcall ScaGetUserDeferred(
131 hr = WcaFetchWrappedRecordWhereString(hUserQuery, vuqUser, wzUser, &hRecTest);
132 if (S_OK == hr)
133 {
134 - AssertSz(FALSE, "Found multiple matching User rows");
134 + AssertSz(FALSE, "Found multiple matching Wix4User rows");
135 }
136
137 hr = WcaGetRecordString(hRec, vuqUser, &pwzData);
138 - ExitOnFailure(hr, "Failed to get User.User");
138 + ExitOnFailure(hr, "Failed to get Wix4User.User");
139 hr = ::StringCchCopyW(pscau->wzKey, countof(pscau->wzKey), pwzData);
140 ExitOnFailure(hr, "Failed to copy key string to user object (in deferred CA)");
141
142 hr = WcaGetRecordString(hRec, vuqComponent, &pwzData);
143 - ExitOnFailure(hr, "Failed to get User.Component_");
143 + ExitOnFailure(hr, "Failed to get Wix4User.Component_");
144 hr = ::StringCchCopyW(pscau->wzComponent, countof(pscau->wzComponent), pwzData);
145 ExitOnFailure(hr, "Failed to copy component string to user object (in deferred CA)");
146
147 hr = WcaGetRecordString(hRec, vuqName, &pwzData);
148 - ExitOnFailure(hr, "Failed to get User.Name");
148 + ExitOnFailure(hr, "Failed to get Wix4User.Name");
149 hr = ::StringCchCopyW(pscau->wzName, countof(pscau->wzName), pwzData);
150 ExitOnFailure(hr, "Failed to copy name string to user object (in deferred CA)");
151
152 hr = WcaGetRecordString(hRec, vuqDomain, &pwzData);
153 - ExitOnFailure(hr, "Failed to get User.Domain");
153 + ExitOnFailure(hr, "Failed to get Wix4User.Domain");
154 hr = ::StringCchCopyW(pscau->wzDomain, countof(pscau->wzDomain), pwzData);
155 ExitOnFailure(hr, "Failed to copy domain string to user object (in deferred CA)");
156
157 hr = WcaGetRecordString(hRec, vuqPassword, &pwzData);
158 - ExitOnFailure(hr, "Failed to get User.Password");
158 + ExitOnFailure(hr, "Failed to get Wix4User.Password");
159 hr = ::StringCchCopyW(pscau->wzPassword, countof(pscau->wzPassword), pwzData);
160 ExitOnFailure(hr, "Failed to copy password string to user object (in deferred CA)");
161 }
162 else if (E_NOMOREITEMS == hr)
163 {
164 - WcaLog(LOGMSG_STANDARD, "Error: Cannot locate User.User='%ls'", wzUser);
164 + WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4User.User='%ls'", wzUser);
165 hr = E_FAIL;
166 }
167 else
168 {
169 - ExitOnFailure(hr, "Error fetching single User row");
169 + ExitOnFailure(hr, "Error fetching single Wix4User row");
170 }
171
172 LExit:
@@ -196,41 +196,41 @@ HRESULT __stdcall ScaGetGroup(
196 ExitOnFailure(hr, "Failed to look up Group");
197
198 hr = WcaOpenView(vcsGroupQuery, &hView);
199 - ExitOnFailure(hr, "Failed to open view on Group table");
199 + ExitOnFailure(hr, "Failed to open view on Wix4Group table");
200 hr = WcaExecuteView(hView, hRec);
201 - ExitOnFailure(hr, "Failed to execute view on Group table");
201 + ExitOnFailure(hr, "Failed to execute view on Wix4Group table");
202
203 hr = WcaFetchSingleRecord(hView, &hRec);
204 if (S_OK == hr)
205 {
206 hr = WcaGetRecordString(hRec, vgqGroup, &pwzData);
207 - ExitOnFailure(hr, "Failed to get Group.Group");
207 + ExitOnFailure(hr, "Failed to get Wix4Group.Wix4Group.");
208 hr = ::StringCchCopyW(pscag->wzKey, countof(pscag->wzKey), pwzData);
209 - ExitOnFailure(hr, "Failed to copy Group.Group.");
209 + ExitOnFailure(hr, "Failed to copy Wix4Group.Wix4Group.");
210
211 hr = WcaGetRecordString(hRec, vgqComponent, &pwzData);
212 - ExitOnFailure(hr, "Failed to get Group.Component_");
212 + ExitOnFailure(hr, "Failed to get Wix4Group.Component_");
213 hr = ::StringCchCopyW(pscag->wzComponent, countof(pscag->wzComponent), pwzData);
214 - ExitOnFailure(hr, "Failed to copy Group.Component_.");
214 + ExitOnFailure(hr, "Failed to copy Wix4Group.Component_.");
215
216 hr = WcaGetRecordFormattedString(hRec, vgqName, &pwzData);
217 - ExitOnFailure(hr, "Failed to get Group.Name");
217 + ExitOnFailure(hr, "Failed to get Wix4Group.Name");
218 hr = ::StringCchCopyW(pscag->wzName, countof(pscag->wzName), pwzData);
219 - ExitOnFailure(hr, "Failed to copy Group.Name.");
219 + ExitOnFailure(hr, "Failed to copy Wix4Group.Name.");
220
221 hr = WcaGetRecordFormattedString(hRec, vgqDomain, &pwzData);
222 - ExitOnFailure(hr, "Failed to get Group.Domain");
222 + ExitOnFailure(hr, "Failed to get Wix4Group.Domain");
223 hr = ::StringCchCopyW(pscag->wzDomain, countof(pscag->wzDomain), pwzData);
224 - ExitOnFailure(hr, "Failed to copy Group.Domain.");
224 + ExitOnFailure(hr, "Failed to copy Wix4Group.Domain.");
225 }
226 else if (E_NOMOREITEMS == hr)
227 {
228 - WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Group.Group='%ls'", wzGroup);
228 + WcaLog(LOGMSG_STANDARD, "Error: Cannot locate Wix4Group.Wix4Group='%ls'", wzGroup);
229 hr = E_FAIL;
230 }
231 else
232 {
233 - ExitOnFailure(hr, "Error or found multiple matching Group rows");
233 + ExitOnFailure(hr, "Error or found multiple matching Wix4Group rows");
234 }
235
236 LExit:
@@ -284,19 +284,19 @@ HRESULT ScaUserRead(
284
285 LPWSTR pwzData = NULL;
286
287 - BOOL fUserGroupExists = FALSE;
287 + BOOL fUserGroupExists = FALSE;
288
289 SCA_USER *psu = NULL;
290
291 INSTALLSTATE isInstalled, isAction;
292
293 - if (S_OK != WcaTableExists(L"User"))
293 + if (S_OK != WcaTableExists(L"Wix4User"))
294 {
295 - WcaLog(LOGMSG_VERBOSE, "User Table does not exist, exiting");
295 + WcaLog(LOGMSG_VERBOSE, "Wix4User Table does not exist, exiting");
296 ExitFunction1(hr = S_FALSE);
297 }
298
299 - if (S_OK == WcaTableExists(L"UserGroup"))
299 + if (S_OK == WcaTableExists(L"Wix4UserGroup"))
300 {
301 fUserGroupExists = TRUE;
302 }
@@ -305,15 +305,15 @@ HRESULT ScaUserRead(
305 // loop through all the users
306 //
307 hr = WcaOpenExecuteView(vActionableQuery, &hView);
308 - ExitOnFailure(hr, "failed to open view on User table");
308 + ExitOnFailure(hr, "failed to open view on Wix4User table");
309 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
310 {
311 hr = WcaGetRecordString(hRec, vaqComponent, &pwzData);
312 - ExitOnFailure(hr, "failed to get User.Component");
312 + ExitOnFailure(hr, "failed to get Wix4User.Component");
313
314 er = ::MsiGetComponentStateW(WcaGetInstallHandle(), pwzData, &isInstalled, &isAction);
315 hr = HRESULT_FROM_WIN32(er);
316 - ExitOnFailure(hr, "failed to get Component state for User");
316 + ExitOnFailure(hr, "failed to get Component state for Wix4User");
317
318 // don't bother if we aren't installing or uninstalling this component
319 if (WcaIsInstalling(isInstalled, isAction) || WcaIsUninstalling(isInstalled, isAction))
@@ -332,44 +332,44 @@ HRESULT ScaUserRead(
332 ExitOnFailure(hr, "failed to copy component name: %ls", pwzData);
333
334 hr = WcaGetRecordString(hRec, vaqUser, &pwzData);
335 - ExitOnFailure(hr, "failed to get User.User");
335 + ExitOnFailure(hr, "failed to get Wix4User.User");
336 hr = ::StringCchCopyW(psu->wzKey, countof(psu->wzKey), pwzData);
337 ExitOnFailure(hr, "failed to copy user key: %ls", pwzData);
338
339 hr = WcaGetRecordFormattedString(hRec, vaqName, &pwzData);
340 - ExitOnFailure(hr, "failed to get User.Name");
340 + ExitOnFailure(hr, "failed to get Wix4User.Name");
341 hr = ::StringCchCopyW(psu->wzName, countof(psu->wzName), pwzData);
342 ExitOnFailure(hr, "failed to copy user name: %ls", pwzData);
343
344 hr = WcaGetRecordFormattedString(hRec, vaqDomain, &pwzData);
345 - ExitOnFailure(hr, "failed to get User.Domain");
345 + ExitOnFailure(hr, "failed to get Wix4User.Domain");
346 hr = ::StringCchCopyW(psu->wzDomain, countof(psu->wzDomain), pwzData);
347 ExitOnFailure(hr, "failed to copy user domain: %ls", pwzData);
348
349 hr = WcaGetRecordFormattedString(hRec, vaqPassword, &pwzData);
350 - ExitOnFailure(hr, "failed to get User.Password");
350 + ExitOnFailure(hr, "failed to get Wix4User.Password");
351 hr = ::StringCchCopyW(psu->wzPassword, countof(psu->wzPassword), pwzData);
352 ExitOnFailure(hr, "failed to copy user password");
353
354 hr = WcaGetRecordInteger(hRec, vaqAttributes, &psu->iAttributes);
355 - ExitOnFailure(hr, "failed to get User.Attributes");
355 + ExitOnFailure(hr, "failed to get Wix4User.Attributes");
356
357 // Check if this user is to be added to any groups
358 if (fUserGroupExists)
359 {
360 hUserRec = ::MsiCreateRecord(1);
361 hr = WcaSetRecordString(hUserRec, 1, psu->wzKey);
362 - ExitOnFailure(hr, "Failed to create user record for querying UserGroup table");
362 + ExitOnFailure(hr, "Failed to create user record for querying Wix4UserGroup table");
363
364 hr = WcaOpenView(vcsUserGroupQuery, &hUserGroupView);
365 - ExitOnFailure(hr, "Failed to open view on UserGroup table for user %ls", psu->wzKey);
365 + ExitOnFailure(hr, "Failed to open view on Wix4UserGroup table for user %ls", psu->wzKey);
366 hr = WcaExecuteView(hUserGroupView, hUserRec);
367 - ExitOnFailure(hr, "Failed to execute view on UserGroup table for user: %ls", psu->wzKey);
367 + ExitOnFailure(hr, "Failed to execute view on Wix4UserGroup table for user: %ls", psu->wzKey);
368
369 while (S_OK == (hr = WcaFetchRecord(hUserGroupView, &hRec)))
370 {
371 hr = WcaGetRecordString(hRec, vugqGroup, &pwzData);
372 - ExitOnFailure(hr, "failed to get UserGroup.Group");
372 + ExitOnFailure(hr, "failed to get Wix4UserGroup.Group");
373
374 hr = AddGroupToList(&(psu->psgGroups));
375 ExitOnFailure(hr, "failed to add group to list");
@@ -382,7 +382,7 @@ HRESULT ScaUserRead(
382 {
383 hr = S_OK;
384 }
385 - ExitOnFailure(hr, "failed to enumerate selected rows from UserGroup table");
385 + ExitOnFailure(hr, "failed to enumerate selected rows from Wix4UserGroup table");
386 }
387 }
388 }
@@ -391,7 +391,7 @@ HRESULT ScaUserRead(
391 {
392 hr = S_OK;
393 }
394 - ExitOnFailure(hr, "failed to enumerate selected rows from User table");
394 + ExitOnFailure(hr, "failed to enumerate selected rows from Wix4User table");
395
396 LExit:
397 ReleaseStr(pwzData);
@@ -581,7 +581,7 @@ HRESULT ScaUserExecute(
581 ExitOnFailure(hr, "failed to add group information to rollback custom action data");
582 }
583
584 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateUserRollback"), pwzRollbackData, COST_USER_DELETE);
584 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateUserRollback"), pwzRollbackData, COST_USER_DELETE);
585 ExitOnFailure(hr, "failed to schedule CreateUserRollback");
586 }
587
@@ -595,7 +595,7 @@ HRESULT ScaUserExecute(
595 hr = WriteGroupInfo(psu->psgGroups, &pwzActionData);
596 ExitOnFailure(hr, "failed to add group information to custom action data");
597
598 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"CreateUser"), pwzActionData, COST_USER_ADD);
598 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"CreateUser"), pwzActionData, COST_USER_ADD);
599 ExitOnFailure(hr, "failed to schedule CreateUser");
600 }
601 else if (((USER_EXISTS_YES == ueUserExists) || (USER_EXISTS_INDETERMINATE == ueUserExists)) && WcaIsUninstalling(psu->isInstalled, psu->isAction) && !(psu->iAttributes & SCAU_DONT_REMOVE_ON_UNINSTALL))
@@ -610,7 +610,7 @@ HRESULT ScaUserExecute(
610 //
611 // Note: We can't rollback the removal of a user which is why RemoveUser is a commit
612 // CustomAction.
613 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RemoveUser"), pwzActionData, COST_USER_DELETE);
613 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RemoveUser"), pwzActionData, COST_USER_DELETE);
614 ExitOnFailure(hr, "failed to schedule RemoveUser");
615 }
616
src/ca/secureobj.cpp
+11 -11
@@ -3,9 +3,9 @@
3 #include "precomp.h"
4
5 // structs
6 -LPCWSTR wzQUERY_SECUREOBJECTS = L"SELECT `SecureObjects`.`SecureObject`, `SecureObjects`.`Table`, `SecureObjects`.`Domain`, `SecureObjects`.`User`, "
7 - L"`SecureObjects`.`Permission`, `SecureObjects`.`Component_`, `Component`.`Attributes` FROM `SecureObjects`,`Component` WHERE "
8 - L"`SecureObjects`.`Component_`=`Component`.`Component`";
6 +LPCWSTR wzQUERY_SECUREOBJECTS = L"SELECT `Wix4SecureObject`.`Wix4SecureObject`, `Wix4SecureObject`.`Table`, `Wix4SecureObject`.`Domain`, `Wix4SecureObject`.`User`, "
7 + L"`Wix4SecureObject`.`Permission`, `Wix4SecureObject`.`Component_`, `Component`.`Attributes` FROM `Wix4SecureObject`,`Component` WHERE "
8 + L"`Wix4SecureObject`.`Component_`=`Component`.`Component`";
9 enum eQUERY_SECUREOBJECTS { QSO_SECUREOBJECT = 1, QSO_TABLE, QSO_DOMAIN, QSO_USER, QSO_PERMISSION, QSO_COMPONENT, QSO_COMPATTRIBUTES };
10
11 LPCWSTR wzQUERY_REGISTRY = L"SELECT `Registry`.`Registry`, `Registry`.`Root`, `Registry`.`Key` FROM `Registry` WHERE `Registry`.`Registry`=?";
@@ -142,7 +142,7 @@ static HRESULT StoreACLRollbackInfo(
142 ExitOnFailure(hr, "failed to add data to rollback CustomActionData");
143 }
144
145 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecSecureObjectsRollback"), pwzCustomActionData, COST_SECUREOBJECT);
145 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecSecureObjectsRollback"), pwzCustomActionData, COST_SECUREOBJECT);
146 ExitOnFailure(hr, "failed to schedule ExecSecureObjectsRollback for item: %ls of type: %ls", pwzObject, pwzTable);
147
148 ReleaseStr(pwzCustomActionData);
@@ -343,9 +343,9 @@ extern "C" UINT __stdcall SchedSecureObjects(
343 ExitOnFailure(hr, "failed to initialize");
344
345 // anything to do?
346 - if (S_OK != WcaTableExists(L"SecureObjects"))
346 + if (S_OK != WcaTableExists(L"Wix4SecureObject"))
347 {
348 - WcaLog(LOGMSG_STANDARD, "SecureObjects table doesn't exist, so there are no objects to secure.");
348 + WcaLog(LOGMSG_STANDARD, "Wix4SecureObject table doesn't exist, so there are no objects to secure.");
349 ExitFunction();
350 }
351
@@ -353,7 +353,7 @@ extern "C" UINT __stdcall SchedSecureObjects(
353 // loop through all the objects to be secured
354 //
355 hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView);
356 - ExitOnFailure(hr, "failed to open view on SecureObjects table");
356 + ExitOnFailure(hr, "failed to open view on Wix4SecureObject table");
357 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
358 {
359 hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable);
@@ -372,7 +372,7 @@ extern "C" UINT __stdcall SchedSecureObjects(
372
373 BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit;
374
375 - // Only process entries in the SecureObjects table whose components match the bitness of this CA
375 + // Only process entries in the Wix4SecureObject table whose components match the bitness of this CA
376 #ifdef _WIN64
377 if (!fIs64Bit)
378 {
@@ -444,7 +444,7 @@ extern "C" UINT __stdcall SchedSecureObjects(
444 {
445 Assert(0 < cObjects);
446
447 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecSecureObjects"), pwzCustomActionData, cObjects * COST_SECUREOBJECT);
447 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecSecureObjects"), pwzCustomActionData, cObjects * COST_SECUREOBJECT);
448 ExitOnFailure(hr, "failed to schedule ExecSecureObjects action");
449 }
450
@@ -497,7 +497,7 @@ extern "C" UINT __stdcall SchedSecureObjectsRollback(
497 // loop through all the objects to be secured
498 //
499 hr = WcaOpenExecuteView(wzQUERY_SECUREOBJECTS, &hView);
500 - ExitOnFailure(hr, "failed to open view on SecureObjects table");
500 + ExitOnFailure(hr, "failed to open view on Wix4SecureObject table");
501 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
502 {
503 hr = WcaGetRecordString(hRec, QSO_TABLE, &pwzTable);
@@ -516,7 +516,7 @@ extern "C" UINT __stdcall SchedSecureObjectsRollback(
516
517 BOOL fIs64Bit = iCompAttributes & msidbComponentAttributes64bit;
518
519 - // Only process entries in the SecureObjects table whose components match the bitness of this CA
519 + // Only process entries in the Wix4SecureObject table whose components match the bitness of this CA
520 #ifdef _WIN64
521 if (!fIs64Bit)
522 {
src/ca/serviceconfig.cpp
+5 -5
@@ -3,7 +3,7 @@
3 #include "precomp.h"
4
5 // structs
6 -LPCWSTR wzQUERY_SERVICECONFIG = L"SELECT `ServiceName`, `Component_`, `NewService`, `FirstFailureActionType`, `SecondFailureActionType`, `ThirdFailureActionType`, `ResetPeriodInDays`, `RestartServiceDelayInSeconds`, `ProgramCommandLine`, `RebootMessage` FROM `ServiceConfig`";
6 +LPCWSTR wzQUERY_SERVICECONFIG = L"SELECT `ServiceName`, `Component_`, `NewService`, `FirstFailureActionType`, `SecondFailureActionType`, `ThirdFailureActionType`, `ResetPeriodInDays`, `RestartServiceDelayInSeconds`, `ProgramCommandLine`, `RebootMessage` FROM `Wix4ServiceConfig`";
7 enum eQUERY_SERVICECONFIG { QSC_SERVICENAME = 1, QSC_COMPONENT, QSC_NEWSERVICE, QSC_FIRSTFAILUREACTIONTYPE, QSC_SECONDFAILUREACTIONTYPE, QSC_THIRDFAILUREACTIONTYPE, QSC_RESETPERIODINDAYS, QSC_RESTARTSERVICEDELAYINSECONDS, QSC_PROGRAMCOMMANDLINE, QSC_REBOOTMESSAGE };
8
9 // consts
@@ -81,7 +81,7 @@ extern "C" UINT __stdcall SchedServiceConfig(
81
82 // Loop through all the services to be configured.
83 hr = WcaOpenExecuteView(wzQUERY_SERVICECONFIG, &hView);
84 - ExitOnFailure(hr, "Failed to open view on ServiceConfig table.");
84 + ExitOnFailure(hr, "Failed to open view on Wix4ServiceConfig table.");
85
86 while (S_OK == (hr = WcaFetchRecord(hView, &hRec)))
87 {
@@ -106,7 +106,7 @@ extern "C" UINT __stdcall SchedServiceConfig(
106 ExitOnFailure(hr, "Failed to add name to CustomActionData.");
107
108 hr = WcaGetRecordInteger(hRec, QSC_NEWSERVICE, &iData);
109 - ExitOnFailure(hr, "Failed to get ServiceConfig.NewService.");
109 + ExitOnFailure(hr, "Failed to get Wix4ServiceConfig.NewService.");
110 hr = WcaWriteIntegerToCaData(0 != iData, &pwzCustomActionData);
111 ExitOnFailure(hr, "Failed to add NewService data to CustomActionData");
112
@@ -167,10 +167,10 @@ extern "C" UINT __stdcall SchedServiceConfig(
167 // setup CustomActionData and add to progress bar for download
168 if (0 < cServices)
169 {
170 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"RollbackServiceConfig"), pwzScriptKey, cServices * COST_SERVICECONFIG);
170 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"RollbackServiceConfig"), pwzScriptKey, cServices * COST_SERVICECONFIG);
171 ExitOnFailure(hr, "failed to schedule RollbackServiceConfig action");
172
173 - hr = WcaDoDeferredAction(PLATFORM_DECORATION(L"ExecServiceConfig"), pwzCustomActionData, cServices * COST_SERVICECONFIG);
173 + hr = WcaDoDeferredAction(CUSTOM_ACTION_DECORATION(L"ExecServiceConfig"), pwzCustomActionData, cServices * COST_SERVICECONFIG);
174 ExitOnFailure(hr, "failed to schedule ExecServiceConfig action");
175 }
176
src/ca/utilca.vcxproj
+1 -1
@@ -66,7 +66,7 @@
66 </ItemGroup>
67
68 <ItemGroup>
69 - <ClInclude Include="caSuffix.h" />
69 + <ClInclude Include="caDecor.h" />
70 <ClInclude Include="cost.h" />
71 <ClInclude Include="CustomMsiErrors.h" />
72 <ClInclude Include="precomp.h" />
src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.en-us.wxl new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +
3 +<!--
4 +This file contains the declaration of all the localizable strings.
5 +-->
6 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7 +
8 + <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 +
11 +</WixLocalization>
src/test/WixToolsetTest.Util/TestData/CloseApplication/Package.wxs new
+24
@@ -0,0 +1,24 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6 +
7 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 + <MediaTemplate />
9 +
10 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 + <ComponentGroupRef Id="ProductComponents" />
12 + </Feature>
13 +
14 + <util:CloseApplication Id="CloseMyApp" CloseMessage="yes" Property="MYAPPISRUNNING" Target="explorer.exe" />
15 + </Product>
16 +
17 + <Fragment>
18 + <Directory Id="TARGETDIR" Name="SourceDir">
19 + <Directory Id="ProgramFilesFolder">
20 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
21 + </Directory>
22 + </Directory>
23 + </Fragment>
24 +</Wix>
src/test/WixToolsetTest.Util/TestData/CloseApplication/PackageComponents.wxs new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Fragment>
5 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 + <Component>
7 + <File Source="example.txt" />
8 + </Component>
9 + </ComponentGroup>
10 + </Fragment>
11 +</Wix>
src/test/WixToolsetTest.Util/TestData/CloseApplication/example.txt new
+1
@@ -0,0 +1 @@
1 +This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.Util/TestData/EventManifest/Package.en-us.wxl new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +
3 +<!--
4 +This file contains the declaration of all the localizable strings.
5 +-->
6 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7 +
8 + <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 +
11 +</WixLocalization>
src/test/WixToolsetTest.Util/TestData/EventManifest/Package.wxs new
+22
@@ -0,0 +1,22 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6 +
7 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 + <MediaTemplate />
9 +
10 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 + <ComponentGroupRef Id="ProductComponents" />
12 + </Feature>
13 + </Product>
14 +
15 + <Fragment>
16 + <Directory Id="TARGETDIR" Name="SourceDir">
17 + <Directory Id="ProgramFilesFolder">
18 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
19 + </Directory>
20 + </Directory>
21 + </Fragment>
22 +</Wix>
src/test/WixToolsetTest.Util/TestData/EventManifest/PackageComponents.wxs new
+13
@@ -0,0 +1,13 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Fragment>
5 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 + <Component>
7 + <File Id="Manifest.dll" Source="example.txt">
8 + <util:EventManifest MessageFile="[Manifest.dll]" ResourceFile="[Manifest.dll]" />
9 + </File>
10 + </Component>
11 + </ComponentGroup>
12 + </Fragment>
13 +</Wix>
src/test/WixToolsetTest.Util/TestData/EventManifest/example.txt new
+1
@@ -0,0 +1 @@
1 +This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.en-us.wxl new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +
3 +<!--
4 +This file contains the declaration of all the localizable strings.
5 +-->
6 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7 +
8 + <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 +
11 +</WixLocalization>
src/test/WixToolsetTest.Util/TestData/InternetShortcut/Package.wxs new
+22
@@ -0,0 +1,22 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6 +
7 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 + <MediaTemplate />
9 +
10 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 + <ComponentGroupRef Id="ProductComponents" />
12 + </Feature>
13 + </Product>
14 +
15 + <Fragment>
16 + <Directory Id="TARGETDIR" Name="SourceDir">
17 + <Directory Id="ProgramFilesFolder">
18 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
19 + </Directory>
20 + </Directory>
21 + </Fragment>
22 +</Wix>
src/test/WixToolsetTest.Util/TestData/InternetShortcut/PackageComponents.wxs new
+12
@@ -0,0 +1,12 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Fragment>
5 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 + <Component>
7 + <File Source="example.txt" />
8 + <util:InternetShortcut Id="wixshortcut" Name="WiX Toolset" Target="https://wixtoolset.org" />
9 + </Component>
10 + </ComponentGroup>
11 + </Fragment>
12 +</Wix>
src/test/WixToolsetTest.Util/TestData/InternetShortcut/example.txt new
+1
@@ -0,0 +1 @@
1 +This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.en-us.wxl new
+11
@@ -0,0 +1,11 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +
3 +<!--
4 +This file contains the declaration of all the localizable strings.
5 +-->
6 +<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7 +
8 + <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 + <String Id="FeatureTitle">MsiPackage</String>
10 +
11 +</WixLocalization>
src/test/WixToolsetTest.Util/TestData/PermissionEx/Package.wxs new
+22
@@ -0,0 +1,22 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Product Id="*" Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
5 + <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
6 +
7 + <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
8 + <MediaTemplate />
9 +
10 + <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
11 + <ComponentGroupRef Id="ProductComponents" />
12 + </Feature>
13 + </Product>
14 +
15 + <Fragment>
16 + <Directory Id="TARGETDIR" Name="SourceDir">
17 + <Directory Id="ProgramFilesFolder">
18 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
19 + </Directory>
20 + </Directory>
21 + </Fragment>
22 +</Wix>
src/test/WixToolsetTest.Util/TestData/PermissionEx/PackageComponents.wxs new
+14
@@ -0,0 +1,14 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 + xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
4 + <Fragment>
5 + <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
6 + <Component>
7 + <File Source="example.txt" />
8 + <CreateFolder>
9 + <util:PermissionEx User="Everyone" GenericAll="yes" />
10 + </CreateFolder>
11 + </Component>
12 + </ComponentGroup>
13 + </Fragment>
14 +</Wix>
src/test/WixToolsetTest.Util/TestData/PermissionEx/example.txt new
+1
@@ -0,0 +1 @@
1 +This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+122 -5
@@ -19,11 +19,118 @@ namespace WixToolsetTest.Util
19 var folder = TestData.Get(@"TestData\UsingFileShare");
20 var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
21
22 - var results = build.BuildAndQuery(Build, "FileShare", "FileSharePermissions");
22 + var results = build.BuildAndQuery(Build, "Binary", "CustomAction", "Wix4FileShare", "Wix4FileSharePermissions");
23 Assert.Equal(new[]
24 {
25 - "FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER\t\t",
26 - "FileSharePermissions:ExampleFileShare\tEveryone\t1",
25 + "Binary:Wix4UtilCA_X86\t[Binary data]",
26 + "CustomAction:Wix4ConfigureSmbInstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbInstall\t",
27 + "CustomAction:Wix4ConfigureSmbUninstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbUninstall\t",
28 + "CustomAction:Wix4CreateSmb_X86\t11265\tWix4UtilCA_X86\tCreateSmb\t",
29 + "CustomAction:Wix4CreateSmbRollback_X86\t11585\tWix4UtilCA_X86\tDropSmb\t",
30 + "CustomAction:Wix4DropSmb_X86\t11265\tWix4UtilCA_X86\tDropSmb\t",
31 + "CustomAction:Wix4DropSmbRollback_X86\t11585\tWix4UtilCA_X86\tCreateSmb\t",
32 + "Wix4FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER",
33 + "Wix4FileSharePermissions:ExampleFileShare\tEveryone\t1",
34 + }, results.OrderBy(s => s).ToArray());
35 + }
36 +
37 + [Fact]
38 + public void CanBuildUsingFileShareX64()
39 + {
40 + var folder = TestData.Get(@"TestData\UsingFileShare");
41 + var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
42 +
43 + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4FileShare", "Wix4FileSharePermissions");
44 + Assert.Equal(new[]
45 + {
46 + "Binary:Wix4UtilCA_X86\t[Binary data]",
47 + "CustomAction:Wix4ConfigureSmbInstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbInstall\t",
48 + "CustomAction:Wix4ConfigureSmbUninstall_X86\t1\tWix4UtilCA_X86\tConfigureSmbUninstall\t",
49 + "CustomAction:Wix4CreateSmb_X86\t11265\tWix4UtilCA_X86\tCreateSmb\t",
50 + "CustomAction:Wix4CreateSmbRollback_X86\t11585\tWix4UtilCA_X86\tDropSmb\t",
51 + "CustomAction:Wix4DropSmb_X86\t11265\tWix4UtilCA_X86\tDropSmb\t",
52 + "CustomAction:Wix4DropSmbRollback_X86\t11585\tWix4UtilCA_X86\tCreateSmb\t",
53 + "Wix4FileShare:ExampleFileShare\texample\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tAn example file share\tINSTALLFOLDER",
54 + "Wix4FileSharePermissions:ExampleFileShare\tEveryone\t1",
55 + }, results.OrderBy(s => s).ToArray());
56 + }
57 +
58 + [Fact]
59 + public void CanBuildCloseApplication()
60 + {
61 + var folder = TestData.Get(@"TestData\CloseApplication");
62 + var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
63 +
64 + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4CloseApplication");
65 + Assert.Equal(new[]
66 + {
67 + "Binary:Wix4UtilCA_X86\t[Binary data]",
68 + "CustomAction:Wix4CheckRebootRequired_X86\t65\tWix4UtilCA_X86\tWixCheckRebootRequired\t",
69 + "CustomAction:Wix4CloseApplications_X86\t1\tWix4UtilCA_X86\tWixCloseApplications\t",
70 + "CustomAction:Wix4CloseApplicationsDeferred_X86\t3073\tWix4UtilCA_X86\tWixCloseApplicationsDeferred\t",
71 + "Wix4CloseApplication:CloseMyApp\texplorer.exe\t\t\t3\t\tMYAPPISRUNNING\t\t",
72 + }, results.OrderBy(s => s).ToArray());
73 + }
74 +
75 + [Fact]
76 + public void CanBuildInternetShortcut()
77 + {
78 + var folder = TestData.Get(@"TestData\InternetShortcut");
79 + var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
80 +
81 + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "RemoveFile", "Wix4InternetShortcut");
82 + Assert.Equal(new[]
83 + {
84 + "Binary:Wix4UtilCA_X86\t[Binary data]",
85 + "CustomAction:Wix4CreateInternetShortcuts_X86\t3073\tWix4UtilCA_X86\tWixCreateInternetShortcuts\t",
86 + "CustomAction:Wix4RollbackInternetShortcuts_X86\t3329\tWix4UtilCA_X86\tWixRollbackInternetShortcuts\t",
87 + "CustomAction:Wix4SchedInternetShortcuts_X86\t1\tWix4UtilCA_X86\tWixSchedInternetShortcuts\t",
88 + "RemoveFile:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tvtpzs3bw.lnk|WiX Toolset.lnk\tINSTALLFOLDER\t2",
89 + "Wix4InternetShortcut:wixshortcut\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tINSTALLFOLDER\tWiX Toolset.lnk\thttps://wixtoolset.org\t0\t\t0",
90 + }, results.OrderBy(s => s).ToArray());
91 + }
92 +
93 + [Fact]
94 + public void CanBuildWithPermissionEx()
95 + {
96 + var folder = TestData.Get(@"TestData\PermissionEx");
97 + var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
98 +
99 + var results = build.BuildAndQuery(BuildX64, "Binary", "CreateFolder", "CustomAction", "Wix4SecureObject");
100 + Assert.Equal(new[]
101 + {
102 + "Binary:Wix4UtilCA_X64\t[Binary data]",
103 + "CreateFolder:INSTALLFOLDER\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo",
104 + "CustomAction:Wix4ExecSecureObjects_X64\t11265\tWix4UtilCA_X64\tExecSecureObjects\t",
105 + "CustomAction:Wix4ExecSecureObjectsRollback_X64\t11521\tWix4UtilCA_X64\tExecSecureObjectsRollback\t",
106 + "CustomAction:Wix4SchedSecureObjects_X64\t1\tWix4UtilCA_X64\tSchedSecureObjects\t",
107 + "CustomAction:Wix4SchedSecureObjectsRollback_X64\t1\tWix4UtilCA_X64\tSchedSecureObjectsRollback\t",
108 + "Wix4SecureObject:INSTALLFOLDER\tCreateFolder\t\tEveryone\t268435456\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo",
109 + }, results.OrderBy(s => s).ToArray());
110 + }
111 +
112 + [Fact]
113 + public void CanBuildWithEventManifest()
114 + {
115 + var folder = TestData.Get(@"TestData\EventManifest");
116 + var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
117 +
118 + var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "Wix4EventManifest", "Wix4XmlFile");
119 + Assert.Equal(new[]
120 + {
121 + "Binary:Wix4UtilCA_X86\t[Binary data]",
122 + "CustomAction:Wix4ConfigureEventManifestRegister_X86\t1\tWix4UtilCA_X86\tConfigureEventManifestRegister\t",
123 + "CustomAction:Wix4ConfigureEventManifestUnregister_X86\t1\tWix4UtilCA_X86\tConfigureEventManifestUnregister\t",
124 + "CustomAction:Wix4ExecXmlFile_X86\t11265\tWix4UtilCA_X86\tExecXmlFile\t",
125 + "CustomAction:Wix4ExecXmlFileRollback_X86\t11521\tWix4UtilCA_X86\tExecXmlFileRollback\t",
126 + "CustomAction:Wix4RegisterEventManifest_X86\t3073\tWix4UtilCA_X86\tCAQuietExec\t",
127 + "CustomAction:Wix4RollbackRegisterEventManifest_X86\t3393\tWix4UtilCA_X86\tCAQuietExec\t",
128 + "CustomAction:Wix4RollbackUnregisterEventManifest_X86\t3329\tWix4UtilCA_X86\tCAQuietExec\t",
129 + "CustomAction:Wix4SchedXmlFile_X86\t1\tWix4UtilCA_X86\tSchedXmlFile\t",
130 + "CustomAction:Wix4UnregisterEventManifest_X86\t3137\tWix4UtilCA_X86\tCAQuietExec\t",
131 + "Wix4EventManifest:Manifest.dll\t[#Manifest.dll]",
132 + "Wix4XmlFile:Config_Manifest.dllMessageFile\t[#Manifest.dll]\t/*/*/*/*[\\[]@messageFileName[\\]]\tmessageFileName\t[Manifest.dll]\t4100\tManifest.dll\t",
133 + "Wix4XmlFile:Config_Manifest.dllResourceFile\t[#Manifest.dll]\t/*/*/*/*[\\[]@resourceFileName[\\]]\tresourceFileName\t[Manifest.dll]\t4100\tManifest.dll\t",
134 }, results.OrderBy(s => s).ToArray());
135 }
136
@@ -93,8 +200,18 @@ namespace WixToolsetTest.Util
200
201 private static void Build(string[] args)
202 {
96 - var result = WixRunner.Execute(args)
97 - .AssertSuccess();
203 + var result = WixRunner.Execute(args);
204 + result.AssertSuccess();
205 + }
206 +
207 + private static void BuildX64(string[] args)
208 + {
209 + var newArgs = args.ToList();
210 + newArgs.Add("-platform");
211 + newArgs.Add("x64");
212 +
213 + var result = WixRunner.Execute(newArgs.ToArray());
214 + result.AssertSuccess();
215 }
216 }
217 }
src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
+16
@@ -23,6 +23,22 @@
23 <Content Include="TestData\UsingFileShare\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
24 <Content Include="TestData\UsingFileShare\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
25 <Content Include="TestData\UsingFileShare\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
26 + <Content Include="TestData\CloseApplication\example.txt" CopyToOutputDirectory="PreserveNewest" />
27 + <Content Include="TestData\CloseApplication\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
28 + <Content Include="TestData\CloseApplication\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
29 + <Content Include="TestData\CloseApplication\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
30 + <Content Include="TestData\InternetShortcut\example.txt" CopyToOutputDirectory="PreserveNewest" />
31 + <Content Include="TestData\InternetShortcut\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
32 + <Content Include="TestData\InternetShortcut\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
33 + <Content Include="TestData\InternetShortcut\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
34 + <Content Include="TestData\PermissionEx\example.txt" CopyToOutputDirectory="PreserveNewest" />
35 + <Content Include="TestData\PermissionEx\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
36 + <Content Include="TestData\PermissionEx\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
37 + <Content Include="TestData\PermissionEx\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
38 + <Content Include="TestData\EventManifest\example.txt" CopyToOutputDirectory="PreserveNewest" />
39 + <Content Include="TestData\EventManifest\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
40 + <Content Include="TestData\EventManifest\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
41 + <Content Include="TestData\EventManifest\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
42 </ItemGroup>
43
44 <ItemGroup>
src/wixext/Tuples/EventManifestTuple.cs
+5 -5
@@ -11,7 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.EventManifest.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(EventManifestTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(EventManifestTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(EventManifestTupleFields.File), IntermediateFieldType.String),
16 },
17 typeof(EventManifestTuple));
@@ -24,7 +24,7 @@ namespace WixToolset.Util.Tuples
24
25 public enum EventManifestTupleFields
26 {
27 - Component_,
27 + ComponentRef,
28 File,
29 }
30
@@ -40,10 +40,10 @@ namespace WixToolset.Util.Tuples
40
41 public IntermediateField this[EventManifestTupleFields index] => this.Fields[(int)index];
42
43 - public string Component_
43 + public string ComponentRef
44 {
45 - get => this.Fields[(int)EventManifestTupleFields.Component_].AsString();
46 - set => this.Set((int)EventManifestTupleFields.Component_, value);
45 + get => this.Fields[(int)EventManifestTupleFields.ComponentRef].AsString();
46 + set => this.Set((int)EventManifestTupleFields.ComponentRef, value);
47 }
48
49 public string File
src/wixext/Tuples/FileSharePermissionsTuple.cs
+10 -10
@@ -11,8 +11,8 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.FileSharePermissions.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.FileShare_), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.User_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.FileShareRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.UserRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(FileSharePermissionsTupleFields.Permissions), IntermediateFieldType.Number),
17 },
18 typeof(FileSharePermissionsTuple));
@@ -25,8 +25,8 @@ namespace WixToolset.Util.Tuples
25
26 public enum FileSharePermissionsTupleFields
27 {
28 - FileShare_,
29 - User_,
28 + FileShareRef,
29 + UserRef,
30 Permissions,
31 }
32
@@ -42,16 +42,16 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[FileSharePermissionsTupleFields index] => this.Fields[(int)index];
44
45 - public string FileShare_
45 + public string FileShareRef
46 {
47 - get => this.Fields[(int)FileSharePermissionsTupleFields.FileShare_].AsString();
48 - set => this.Set((int)FileSharePermissionsTupleFields.FileShare_, value);
47 + get => this.Fields[(int)FileSharePermissionsTupleFields.FileShareRef].AsString();
48 + set => this.Set((int)FileSharePermissionsTupleFields.FileShareRef, value);
49 }
50
51 - public string User_
51 + public string UserRef
52 {
53 - get => this.Fields[(int)FileSharePermissionsTupleFields.User_].AsString();
54 - set => this.Set((int)FileSharePermissionsTupleFields.User_, value);
53 + get => this.Fields[(int)FileSharePermissionsTupleFields.UserRef].AsString();
54 + set => this.Set((int)FileSharePermissionsTupleFields.UserRef, value);
55 }
56
57 public int Permissions
src/wixext/Tuples/FileShareTuple.cs
+10 -34
@@ -11,13 +11,10 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.FileShare.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(FileShareTupleFields.FileShare), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(FileShareTupleFields.ShareName), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(FileShareTupleFields.Component_), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(FileShareTupleFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(FileShareTupleFields.Description), IntermediateFieldType.String),
18 - new IntermediateFieldDefinition(nameof(FileShareTupleFields.Directory_), IntermediateFieldType.String),
19 - new IntermediateFieldDefinition(nameof(FileShareTupleFields.User_), IntermediateFieldType.String),
20 - new IntermediateFieldDefinition(nameof(FileShareTupleFields.Permissions), IntermediateFieldType.Number),
17 + new IntermediateFieldDefinition(nameof(FileShareTupleFields.DirectoryRef), IntermediateFieldType.String),
18 },
19 typeof(FileShareTuple));
20 }
@@ -29,13 +26,10 @@ namespace WixToolset.Util.Tuples
26
27 public enum FileShareTupleFields
28 {
32 - FileShare,
29 ShareName,
34 - Component_,
30 + ComponentRef,
31 Description,
36 - Directory_,
37 - User_,
38 - Permissions,
32 + DirectoryRef,
33 }
34
35 public class FileShareTuple : IntermediateTuple
@@ -50,22 +44,16 @@ namespace WixToolset.Util.Tuples
44
45 public IntermediateField this[FileShareTupleFields index] => this.Fields[(int)index];
46
53 - public string FileShare
54 - {
55 - get => this.Fields[(int)FileShareTupleFields.FileShare].AsString();
56 - set => this.Set((int)FileShareTupleFields.FileShare, value);
57 - }
58 -
47 public string ShareName
48 {
49 get => this.Fields[(int)FileShareTupleFields.ShareName].AsString();
50 set => this.Set((int)FileShareTupleFields.ShareName, value);
51 }
52
65 - public string Component_
53 + public string ComponentRef
54 {
67 - get => this.Fields[(int)FileShareTupleFields.Component_].AsString();
68 - set => this.Set((int)FileShareTupleFields.Component_, value);
55 + get => this.Fields[(int)FileShareTupleFields.ComponentRef].AsString();
56 + set => this.Set((int)FileShareTupleFields.ComponentRef, value);
57 }
58
59 public string Description
@@ -74,22 +62,10 @@ namespace WixToolset.Util.Tuples
62 set => this.Set((int)FileShareTupleFields.Description, value);
63 }
64
77 - public string Directory_
78 - {
79 - get => this.Fields[(int)FileShareTupleFields.Directory_].AsString();
80 - set => this.Set((int)FileShareTupleFields.Directory_, value);
81 - }
82 -
83 - public string User_
84 - {
85 - get => this.Fields[(int)FileShareTupleFields.User_].AsString();
86 - set => this.Set((int)FileShareTupleFields.User_, value);
87 - }
88 -
89 - public int? Permissions
65 + public string DirectoryRef
66 {
91 - get => this.Fields[(int)FileShareTupleFields.Permissions].AsNullableNumber();
92 - set => this.Set((int)FileShareTupleFields.Permissions, value);
67 + get => this.Fields[(int)FileShareTupleFields.DirectoryRef].AsString();
68 + set => this.Set((int)FileShareTupleFields.DirectoryRef, value);
69 }
70 }
71 }
\ No newline at end of file
src/wixext/Tuples/GroupTuple.cs
+5 -5
@@ -12,7 +12,7 @@ namespace WixToolset.Util
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(GroupTupleFields.Group), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(GroupTupleFields.Component_), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(GroupTupleFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(GroupTupleFields.Name), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(GroupTupleFields.Domain), IntermediateFieldType.String),
18 },
@@ -27,7 +27,7 @@ namespace WixToolset.Util.Tuples
27 public enum GroupTupleFields
28 {
29 Group,
30 - Component_,
30 + ComponentRef,
31 Name,
32 Domain,
33 }
@@ -50,10 +50,10 @@ namespace WixToolset.Util.Tuples
50 set => this.Set((int)GroupTupleFields.Group, value);
51 }
52
53 - public string Component_
53 + public string ComponentRef
54 {
55 - get => this.Fields[(int)GroupTupleFields.Component_].AsString();
56 - set => this.Set((int)GroupTupleFields.Component_, value);
55 + get => this.Fields[(int)GroupTupleFields.ComponentRef].AsString();
56 + set => this.Set((int)GroupTupleFields.ComponentRef, value);
57 }
58
59 public string Name
src/wixext/Tuples/PerfmonManifestTuple.cs
+5 -5
@@ -11,7 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.PerfmonManifest.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.File), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(PerfmonManifestTupleFields.ResourceFileDirectory), IntermediateFieldType.String),
17 },
@@ -25,7 +25,7 @@ namespace WixToolset.Util.Tuples
25
26 public enum PerfmonManifestTupleFields
27 {
28 - Component_,
28 + ComponentRef,
29 File,
30 ResourceFileDirectory,
31 }
@@ -42,10 +42,10 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[PerfmonManifestTupleFields index] => this.Fields[(int)index];
44
45 - public string Component_
45 + public string ComponentRef
46 {
47 - get => this.Fields[(int)PerfmonManifestTupleFields.Component_].AsString();
48 - set => this.Set((int)PerfmonManifestTupleFields.Component_, value);
47 + get => this.Fields[(int)PerfmonManifestTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)PerfmonManifestTupleFields.ComponentRef, value);
49 }
50
51 public string File
src/wixext/Tuples/PerfmonTuple.cs
+5 -5
@@ -11,7 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.Perfmon.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(PerfmonTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(PerfmonTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(PerfmonTupleFields.File), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(PerfmonTupleFields.Name), IntermediateFieldType.String),
17 },
@@ -25,7 +25,7 @@ namespace WixToolset.Util.Tuples
25
26 public enum PerfmonTupleFields
27 {
28 - Component_,
28 + ComponentRef,
29 File,
30 Name,
31 }
@@ -42,10 +42,10 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[PerfmonTupleFields index] => this.Fields[(int)index];
44
45 - public string Component_
45 + public string ComponentRef
46 {
47 - get => this.Fields[(int)PerfmonTupleFields.Component_].AsString();
48 - set => this.Set((int)PerfmonTupleFields.Component_, value);
47 + get => this.Fields[(int)PerfmonTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)PerfmonTupleFields.ComponentRef, value);
49 }
50
51 public string File
src/wixext/Tuples/PerformanceCategoryTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.PerformanceCategory.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.PerformanceCategory), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.Name), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.IniData), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(PerformanceCategoryTupleFields.ConstantData), IntermediateFieldType.String),
@@ -27,8 +26,7 @@ namespace WixToolset.Util.Tuples
26
27 public enum PerformanceCategoryTupleFields
28 {
30 - PerformanceCategory,
31 - Component_,
29 + ComponentRef,
30 Name,
31 IniData,
32 ConstantData,
@@ -46,16 +44,10 @@ namespace WixToolset.Util.Tuples
44
45 public IntermediateField this[PerformanceCategoryTupleFields index] => this.Fields[(int)index];
46
49 - public string PerformanceCategory
47 + public string ComponentRef
48 {
51 - get => this.Fields[(int)PerformanceCategoryTupleFields.PerformanceCategory].AsString();
52 - set => this.Set((int)PerformanceCategoryTupleFields.PerformanceCategory, value);
53 - }
54 -
55 - public string Component_
56 - {
57 - get => this.Fields[(int)PerformanceCategoryTupleFields.Component_].AsString();
58 - set => this.Set((int)PerformanceCategoryTupleFields.Component_, value);
49 + get => this.Fields[(int)PerformanceCategoryTupleFields.ComponentRef].AsString();
50 + set => this.Set((int)PerformanceCategoryTupleFields.ComponentRef, value);
51 }
52
53 public string Name
src/wixext/Tuples/SecureObjectsTuple.cs
+5 -13
@@ -11,12 +11,11 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.SecureObjects.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.SecureObject), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Table), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Domain), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.User), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Permission), IntermediateFieldType.Number),
19 - new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.Component_), IntermediateFieldType.String),
18 + new IntermediateFieldDefinition(nameof(SecureObjectsTupleFields.ComponentRef), IntermediateFieldType.String),
19 },
20 typeof(SecureObjectsTuple));
21 }
@@ -28,12 +27,11 @@ namespace WixToolset.Util.Tuples
27
28 public enum SecureObjectsTupleFields
29 {
31 - SecureObject,
30 Table,
31 Domain,
32 User,
33 Permission,
36 - Component_,
34 + ComponentRef,
35 }
36
37 public class SecureObjectsTuple : IntermediateTuple
@@ -48,12 +46,6 @@ namespace WixToolset.Util.Tuples
46
47 public IntermediateField this[SecureObjectsTupleFields index] => this.Fields[(int)index];
48
51 - public string SecureObject
52 - {
53 - get => this.Fields[(int)SecureObjectsTupleFields.SecureObject].AsString();
54 - set => this.Set((int)SecureObjectsTupleFields.SecureObject, value);
55 - }
56 -
49 public string Table
50 {
51 get => this.Fields[(int)SecureObjectsTupleFields.Table].AsString();
@@ -78,10 +70,10 @@ namespace WixToolset.Util.Tuples
70 set => this.Set((int)SecureObjectsTupleFields.Permission, value);
71 }
72
81 - public string Component_
73 + public string ComponentRef
74 {
83 - get => this.Fields[(int)SecureObjectsTupleFields.Component_].AsString();
84 - set => this.Set((int)SecureObjectsTupleFields.Component_, value);
75 + get => this.Fields[(int)SecureObjectsTupleFields.ComponentRef].AsString();
76 + set => this.Set((int)SecureObjectsTupleFields.ComponentRef, value);
77 }
78 }
79 }
\ No newline at end of file
src/wixext/Tuples/ServiceConfigTuple.cs
+5 -5
@@ -12,7 +12,7 @@ namespace WixToolset.Util
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.ServiceName), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.Component_), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.NewService), IntermediateFieldType.Number),
17 new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.FirstFailureActionType), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(ServiceConfigTupleFields.SecondFailureActionType), IntermediateFieldType.String),
@@ -33,7 +33,7 @@ namespace WixToolset.Util.Tuples
33 public enum ServiceConfigTupleFields
34 {
35 ServiceName,
36 - Component_,
36 + ComponentRef,
37 NewService,
38 FirstFailureActionType,
39 SecondFailureActionType,
@@ -62,10 +62,10 @@ namespace WixToolset.Util.Tuples
62 set => this.Set((int)ServiceConfigTupleFields.ServiceName, value);
63 }
64
65 - public string Component_
65 + public string ComponentRef
66 {
67 - get => this.Fields[(int)ServiceConfigTupleFields.Component_].AsString();
68 - set => this.Set((int)ServiceConfigTupleFields.Component_, value);
67 + get => this.Fields[(int)ServiceConfigTupleFields.ComponentRef].AsString();
68 + set => this.Set((int)ServiceConfigTupleFields.ComponentRef, value);
69 }
70
71 public int NewService
src/wixext/Tuples/UserGroupTuple.cs
+10 -10
@@ -11,8 +11,8 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.UserGroup.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(UserGroupTupleFields.User_), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(UserGroupTupleFields.Group_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(UserGroupTupleFields.UserRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(UserGroupTupleFields.GroupRef), IntermediateFieldType.String),
16 },
17 typeof(UserGroupTuple));
18 }
@@ -24,8 +24,8 @@ namespace WixToolset.Util.Tuples
24
25 public enum UserGroupTupleFields
26 {
27 - User_,
28 - Group_,
27 + UserRef,
28 + GroupRef,
29 }
30
31 public class UserGroupTuple : IntermediateTuple
@@ -40,16 +40,16 @@ namespace WixToolset.Util.Tuples
40
41 public IntermediateField this[UserGroupTupleFields index] => this.Fields[(int)index];
42
43 - public string User_
43 + public string UserRef
44 {
45 - get => this.Fields[(int)UserGroupTupleFields.User_].AsString();
46 - set => this.Set((int)UserGroupTupleFields.User_, value);
45 + get => this.Fields[(int)UserGroupTupleFields.UserRef].AsString();
46 + set => this.Set((int)UserGroupTupleFields.UserRef, value);
47 }
48
49 - public string Group_
49 + public string GroupRef
50 {
51 - get => this.Fields[(int)UserGroupTupleFields.Group_].AsString();
52 - set => this.Set((int)UserGroupTupleFields.Group_, value);
51 + get => this.Fields[(int)UserGroupTupleFields.GroupRef].AsString();
52 + set => this.Set((int)UserGroupTupleFields.GroupRef, value);
53 }
54 }
55 }
\ No newline at end of file
src/wixext/Tuples/UserTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.User.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(UserTupleFields.User), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(UserTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(UserTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(UserTupleFields.Name), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(UserTupleFields.Domain), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(UserTupleFields.Password), IntermediateFieldType.String),
@@ -28,8 +27,7 @@ namespace WixToolset.Util.Tuples
27
28 public enum UserTupleFields
29 {
31 - User,
32 - Component_,
30 + ComponentRef,
31 Name,
32 Domain,
33 Password,
@@ -48,16 +46,10 @@ namespace WixToolset.Util.Tuples
46
47 public IntermediateField this[UserTupleFields index] => this.Fields[(int)index];
48
51 - public string User
49 + public string ComponentRef
50 {
53 - get => this.Fields[(int)UserTupleFields.User].AsString();
54 - set => this.Set((int)UserTupleFields.User, value);
55 - }
56 -
57 - public string Component_
58 - {
59 - get => this.Fields[(int)UserTupleFields.Component_].AsString();
60 - set => this.Set((int)UserTupleFields.Component_, value);
51 + get => this.Fields[(int)UserTupleFields.ComponentRef].AsString();
52 + set => this.Set((int)UserTupleFields.ComponentRef, value);
53 }
54
55 public string Name
src/wixext/Tuples/WixCloseApplicationTuple.cs
-8
@@ -11,7 +11,6 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixCloseApplication.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.WixCloseApplication), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Target), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Description), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixCloseApplicationTupleFields.Condition), IntermediateFieldType.String),
@@ -31,7 +30,6 @@ namespace WixToolset.Util.Tuples
30
31 public enum WixCloseApplicationTupleFields
32 {
34 - WixCloseApplication,
33 Target,
34 Description,
35 Condition,
@@ -54,12 +52,6 @@ namespace WixToolset.Util.Tuples
52
53 public IntermediateField this[WixCloseApplicationTupleFields index] => this.Fields[(int)index];
54
57 - public string WixCloseApplication
58 - {
59 - get => this.Fields[(int)WixCloseApplicationTupleFields.WixCloseApplication].AsString();
60 - set => this.Set((int)WixCloseApplicationTupleFields.WixCloseApplication, value);
61 - }
62 -
55 public string Target
56 {
57 get => this.Fields[(int)WixCloseApplicationTupleFields.Target].AsString();
src/wixext/Tuples/WixFormatFilesTuple.cs
+10 -10
@@ -11,8 +11,8 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixFormatFiles.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.Binary_), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.File_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.BinaryRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(WixFormatFilesTupleFields.FileRef), IntermediateFieldType.String),
16 },
17 typeof(WixFormatFilesTuple));
18 }
@@ -24,8 +24,8 @@ namespace WixToolset.Util.Tuples
24
25 public enum WixFormatFilesTupleFields
26 {
27 - Binary_,
28 - File_,
27 + BinaryRef,
28 + FileRef,
29 }
30
31 public class WixFormatFilesTuple : IntermediateTuple
@@ -40,16 +40,16 @@ namespace WixToolset.Util.Tuples
40
41 public IntermediateField this[WixFormatFilesTupleFields index] => this.Fields[(int)index];
42
43 - public string Binary_
43 + public string BinaryRef
44 {
45 - get => this.Fields[(int)WixFormatFilesTupleFields.Binary_].AsString();
46 - set => this.Set((int)WixFormatFilesTupleFields.Binary_, value);
45 + get => this.Fields[(int)WixFormatFilesTupleFields.BinaryRef].AsString();
46 + set => this.Set((int)WixFormatFilesTupleFields.BinaryRef, value);
47 }
48
49 - public string File_
49 + public string FileRef
50 {
51 - get => this.Fields[(int)WixFormatFilesTupleFields.File_].AsString();
52 - set => this.Set((int)WixFormatFilesTupleFields.File_, value);
51 + get => this.Fields[(int)WixFormatFilesTupleFields.FileRef].AsString();
52 + set => this.Set((int)WixFormatFilesTupleFields.FileRef, value);
53 }
54 }
55 }
\ No newline at end of file
src/wixext/Tuples/WixInternetShortcutTuple.cs
+10 -18
@@ -11,9 +11,8 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixInternetShortcut.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.WixInternetShortcut), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Component_), IntermediateFieldType.String),
16 - new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Directory_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.ComponentRef), IntermediateFieldType.String),
15 + new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.DirectoryRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Name), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Target), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixInternetShortcutTupleFields.Attributes), IntermediateFieldType.Number),
@@ -30,9 +29,8 @@ namespace WixToolset.Util.Tuples
29
30 public enum WixInternetShortcutTupleFields
31 {
33 - WixInternetShortcut,
34 - Component_,
35 - Directory_,
32 + ComponentRef,
33 + DirectoryRef,
34 Name,
35 Target,
36 Attributes,
@@ -52,22 +50,16 @@ namespace WixToolset.Util.Tuples
50
51 public IntermediateField this[WixInternetShortcutTupleFields index] => this.Fields[(int)index];
52
55 - public string WixInternetShortcut
53 + public string ComponentRef
54 {
57 - get => this.Fields[(int)WixInternetShortcutTupleFields.WixInternetShortcut].AsString();
58 - set => this.Set((int)WixInternetShortcutTupleFields.WixInternetShortcut, value);
55 + get => this.Fields[(int)WixInternetShortcutTupleFields.ComponentRef].AsString();
56 + set => this.Set((int)WixInternetShortcutTupleFields.ComponentRef, value);
57 }
58
61 - public string Component_
59 + public string DirectoryRef
60 {
63 - get => this.Fields[(int)WixInternetShortcutTupleFields.Component_].AsString();
64 - set => this.Set((int)WixInternetShortcutTupleFields.Component_, value);
65 - }
66 -
67 - public string Directory_
68 - {
69 - get => this.Fields[(int)WixInternetShortcutTupleFields.Directory_].AsString();
70 - set => this.Set((int)WixInternetShortcutTupleFields.Directory_, value);
61 + get => this.Fields[(int)WixInternetShortcutTupleFields.DirectoryRef].AsString();
62 + set => this.Set((int)WixInternetShortcutTupleFields.DirectoryRef, value);
63 }
64
65 public string Name
src/wixext/Tuples/WixRemoveFolderExTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixRemoveFolderEx.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.WixRemoveFolderEx), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.Property), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixRemoveFolderExTupleFields.InstallMode), IntermediateFieldType.Number),
17 },
@@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples
25
26 public enum WixRemoveFolderExTupleFields
27 {
29 - WixRemoveFolderEx,
30 - Component_,
28 + ComponentRef,
29 Property,
30 InstallMode,
31 }
@@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[WixRemoveFolderExTupleFields index] => this.Fields[(int)index];
44
47 - public string WixRemoveFolderEx
45 + public string ComponentRef
46 {
49 - get => this.Fields[(int)WixRemoveFolderExTupleFields.WixRemoveFolderEx].AsString();
50 - set => this.Set((int)WixRemoveFolderExTupleFields.WixRemoveFolderEx, value);
51 - }
52 -
53 - public string Component_
54 - {
55 - get => this.Fields[(int)WixRemoveFolderExTupleFields.Component_].AsString();
56 - set => this.Set((int)WixRemoveFolderExTupleFields.Component_, value);
47 + get => this.Fields[(int)WixRemoveFolderExTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)WixRemoveFolderExTupleFields.ComponentRef, value);
49 }
50
51 public string Property
src/wixext/Tuples/WixRestartResourceTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixRestartResource.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.WixRestartResource), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Resource), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixRestartResourceTupleFields.Attributes), IntermediateFieldType.Number),
17 },
@@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples
25
26 public enum WixRestartResourceTupleFields
27 {
29 - WixRestartResource,
30 - Component_,
28 + ComponentRef,
29 Resource,
30 Attributes,
31 }
@@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[WixRestartResourceTupleFields index] => this.Fields[(int)index];
44
47 - public string WixRestartResource
45 + public string ComponentRef
46 {
49 - get => this.Fields[(int)WixRestartResourceTupleFields.WixRestartResource].AsString();
50 - set => this.Set((int)WixRestartResourceTupleFields.WixRestartResource, value);
51 - }
52 -
53 - public string Component_
54 - {
55 - get => this.Fields[(int)WixRestartResourceTupleFields.Component_].AsString();
56 - set => this.Set((int)WixRestartResourceTupleFields.Component_, value);
47 + get => this.Fields[(int)WixRestartResourceTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)WixRestartResourceTupleFields.ComponentRef, value);
49 }
50
51 public string Resource
src/wixext/Tuples/WixTouchFileTuple.cs
+5 -13
@@ -11,8 +11,7 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.WixTouchFile.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.WixTouchFile), IntermediateFieldType.String),
15 - new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Component_), IntermediateFieldType.String),
14 + new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Path), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixTouchFileTupleFields.Attributes), IntermediateFieldType.Number),
17 },
@@ -26,8 +25,7 @@ namespace WixToolset.Util.Tuples
25
26 public enum WixTouchFileTupleFields
27 {
29 - WixTouchFile,
30 - Component_,
28 + ComponentRef,
29 Path,
30 Attributes,
31 }
@@ -44,16 +42,10 @@ namespace WixToolset.Util.Tuples
42
43 public IntermediateField this[WixTouchFileTupleFields index] => this.Fields[(int)index];
44
47 - public string WixTouchFile
45 + public string ComponentRef
46 {
49 - get => this.Fields[(int)WixTouchFileTupleFields.WixTouchFile].AsString();
50 - set => this.Set((int)WixTouchFileTupleFields.WixTouchFile, value);
51 - }
52 -
53 - public string Component_
54 - {
55 - get => this.Fields[(int)WixTouchFileTupleFields.Component_].AsString();
56 - set => this.Set((int)WixTouchFileTupleFields.Component_, value);
47 + get => this.Fields[(int)WixTouchFileTupleFields.ComponentRef].AsString();
48 + set => this.Set((int)WixTouchFileTupleFields.ComponentRef, value);
49 }
50
51 public string Path
src/wixext/Tuples/XmlConfigTuple.cs
+5 -13
@@ -11,14 +11,13 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.XmlConfig.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.XmlConfig), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.File), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.ElementPath), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.VerifyPath), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Name), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Value), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Flags), IntermediateFieldType.Number),
21 - new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Component_), IntermediateFieldType.String),
20 + new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.ComponentRef), IntermediateFieldType.String),
21 new IntermediateFieldDefinition(nameof(XmlConfigTupleFields.Sequence), IntermediateFieldType.Number),
22 },
23 typeof(XmlConfigTuple));
@@ -31,14 +30,13 @@ namespace WixToolset.Util.Tuples
30
31 public enum XmlConfigTupleFields
32 {
34 - XmlConfig,
33 File,
34 ElementPath,
35 VerifyPath,
36 Name,
37 Value,
38 Flags,
41 - Component_,
39 + ComponentRef,
40 Sequence,
41 }
42
@@ -54,12 +52,6 @@ namespace WixToolset.Util.Tuples
52
53 public IntermediateField this[XmlConfigTupleFields index] => this.Fields[(int)index];
54
57 - public string XmlConfig
58 - {
59 - get => this.Fields[(int)XmlConfigTupleFields.XmlConfig].AsString();
60 - set => this.Set((int)XmlConfigTupleFields.XmlConfig, value);
61 - }
62 -
55 public string File
56 {
57 get => this.Fields[(int)XmlConfigTupleFields.File].AsString();
@@ -96,10 +88,10 @@ namespace WixToolset.Util.Tuples
88 set => this.Set((int)XmlConfigTupleFields.Flags, value);
89 }
90
99 - public string Component_
91 + public string ComponentRef
92 {
101 - get => this.Fields[(int)XmlConfigTupleFields.Component_].AsString();
102 - set => this.Set((int)XmlConfigTupleFields.Component_, value);
93 + get => this.Fields[(int)XmlConfigTupleFields.ComponentRef].AsString();
94 + set => this.Set((int)XmlConfigTupleFields.ComponentRef, value);
95 }
96
97 public int Sequence
src/wixext/Tuples/XmlFileTuple.cs
+5 -13
@@ -11,13 +11,12 @@ namespace WixToolset.Util
11 UtilTupleDefinitionType.XmlFile.ToString(),
12 new[]
13 {
14 - new IntermediateFieldDefinition(nameof(XmlFileTupleFields.XmlFile), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.File), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.ElementPath), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Name), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Value), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Flags), IntermediateFieldType.Number),
20 - new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Component_), IntermediateFieldType.String),
19 + new IntermediateFieldDefinition(nameof(XmlFileTupleFields.ComponentRef), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(XmlFileTupleFields.Sequence), IntermediateFieldType.Number),
21 },
22 typeof(XmlFileTuple));
@@ -30,13 +29,12 @@ namespace WixToolset.Util.Tuples
29
30 public enum XmlFileTupleFields
31 {
33 - XmlFile,
32 File,
33 ElementPath,
34 Name,
35 Value,
36 Flags,
39 - Component_,
37 + ComponentRef,
38 Sequence,
39 }
40
@@ -52,12 +50,6 @@ namespace WixToolset.Util.Tuples
50
51 public IntermediateField this[XmlFileTupleFields index] => this.Fields[(int)index];
52
55 - public string XmlFile
56 - {
57 - get => this.Fields[(int)XmlFileTupleFields.XmlFile].AsString();
58 - set => this.Set((int)XmlFileTupleFields.XmlFile, value);
59 - }
60 -
53 public string File
54 {
55 get => this.Fields[(int)XmlFileTupleFields.File].AsString();
@@ -88,10 +80,10 @@ namespace WixToolset.Util.Tuples
80 set => this.Set((int)XmlFileTupleFields.Flags, value);
81 }
82
91 - public string Component_
83 + public string ComponentRef
84 {
93 - get => this.Fields[(int)XmlFileTupleFields.Component_].AsString();
94 - set => this.Set((int)XmlFileTupleFields.Component_, value);
85 + get => this.Fields[(int)XmlFileTupleFields.ComponentRef].AsString();
86 + set => this.Set((int)XmlFileTupleFields.ComponentRef, value);
87 }
88
89 public int Sequence
src/wixext/UtilCompiler.cs
+253 -346
@@ -14,6 +14,7 @@ namespace WixToolset.Util
14 using WixToolset.Data.Tuples;
15 using WixToolset.Extensibility;
16 using WixToolset.Extensibility.Data;
17 + using WixToolset.Util.Tuples;
18
19 /// <summary>
20 /// The compiler for the WiX Toolset Utility Extension.
@@ -790,38 +791,32 @@ namespace WixToolset.Util
791
792 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
793
793 - // Reference CustomAction since nothing will happen without it
794 - if (this.Context.Platform == Platform.ARM)
795 - {
796 - // Ensure ARM version of the CA is referenced
797 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixCloseApplications_ARM");
798 - }
799 - else
800 - {
801 - // All other supported platforms use x86
802 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixCloseApplications");
803 - }
794 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "CloseApplications", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
795
796 if (!this.Messaging.EncounteredError)
797 {
807 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixCloseApplication", id);
808 - row.Set(1, target);
809 - row.Set(2, description);
810 - row.Set(3, condition);
811 - row.Set(4, attributes);
798 + var tuple = new WixCloseApplicationTuple(sourceLineNumbers, id)
799 + {
800 + Target = target,
801 + Description = description,
802 + Condition = condition,
803 + Attributes = attributes,
804 + Property = property,
805 + };
806 if (CompilerConstants.IntegerNotSet != sequence)
807 {
814 - row.Set(5, sequence);
808 + tuple.Sequence = sequence;
809 }
816 - row.Set(6, property);
810 if (CompilerConstants.IntegerNotSet != terminateExitCode)
811 {
819 - row.Set(7, terminateExitCode);
812 + tuple.TerminateExitCode = terminateExitCode;
813 }
814 if (CompilerConstants.IntegerNotSet != timeout)
815 {
823 - row.Set(8, timeout * 1000); // make the timeout milliseconds in the table.
816 + tuple.Timeout = timeout * 1000; // make the timeout milliseconds in the table.
817 }
818 +
819 + section.Tuples.Add(tuple);
820 }
821 }
822
@@ -1096,7 +1091,7 @@ namespace WixToolset.Util
1091 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1092 string description = null;
1093 string name = null;
1099 - string id = null;
1094 + Identifier id = null;
1095
1096 foreach (XAttribute attrib in element.Attributes())
1097 {
@@ -1105,7 +1100,7 @@ namespace WixToolset.Util
1100 switch (attrib.Name.LocalName)
1101 {
1102 case "Id":
1108 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1103 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
1104 break;
1105 case "Name":
1106 name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -1159,28 +1154,20 @@ namespace WixToolset.Util
1154 }
1155 }
1156
1162 - // Reference ConfigureSmbInstall and ConfigureSmbUninstall since nothing will happen without it
1163 - if (this.Context.Platform == Platform.ARM)
1164 - {
1165 - // Ensure ARM version of the CA is referenced
1166 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbInstall_ARM");
1167 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbUninstall_ARM");
1168 - }
1169 - else
1170 - {
1171 - // All other supported platforms use x86
1172 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbInstall");
1173 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureSmbUninstall");
1174 - }
1157 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureSmbInstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
1158 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureSmbUninstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
1159
1160 if (!this.Messaging.EncounteredError)
1161 {
1178 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "FileShare");
1179 - row.Set(0, id);
1180 - row.Set(1, name);
1181 - row.Set(2, componentId);
1182 - row.Set(3, description);
1183 - row.Set(4, directoryId);
1162 + var tuple = new FileShareTuple(sourceLineNumbers, id)
1163 + {
1164 + ShareName = name,
1165 + ComponentRef = componentId,
1166 + Description = description,
1167 + DirectoryRef = directoryId,
1168 + };
1169 +
1170 + section.Tuples.Add(tuple);
1171 }
1172 }
1173
@@ -1189,7 +1176,7 @@ namespace WixToolset.Util
1176 /// </summary>
1177 /// <param name="element">Element to parse.</param>
1178 /// <param name="fileShareId">The identifier of the parent FileShare element.</param>
1192 - private void ParseFileSharePermissionElement(Intermediate intermediate, IntermediateSection section, XElement element, string fileShareId)
1179 + private void ParseFileSharePermissionElement(Intermediate intermediate, IntermediateSection section, XElement element, Identifier fileShareId)
1180 {
1181 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1182 BitArray bits = new BitArray(32);
@@ -1244,10 +1231,14 @@ namespace WixToolset.Util
1231
1232 if (!this.Messaging.EncounteredError)
1233 {
1247 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "FileSharePermissions");
1248 - row.Set(0, fileShareId);
1249 - row.Set(1, user);
1250 - row.Set(2, permission);
1234 + var tuple = new FileSharePermissionsTuple(sourceLineNumbers)
1235 + {
1236 + FileShareRef = fileShareId.Id,
1237 + UserRef = user,
1238 + Permissions = permission,
1239 + };
1240 +
1241 + section.Tuples.Add(tuple);
1242 }
1243 }
1244
@@ -1259,7 +1250,7 @@ namespace WixToolset.Util
1250 private void ParseGroupElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
1251 {
1252 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1262 - string id = null;
1253 + Identifier id = null;
1254 string domain = null;
1255 string name = null;
1256
@@ -1270,7 +1261,7 @@ namespace WixToolset.Util
1261 switch (attrib.Name.LocalName)
1262 {
1263 case "Id":
1273 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1264 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
1265 break;
1266 case "Name":
1267 name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -1298,11 +1289,14 @@ namespace WixToolset.Util
1289
1290 if (!this.Messaging.EncounteredError)
1291 {
1301 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Group");
1302 - row.Set(0, id);
1303 - row.Set(1, componentId);
1304 - row.Set(2, name);
1305 - row.Set(3, domain);
1292 + var tuple = new GroupTuple(sourceLineNumbers, id)
1293 + {
1294 + ComponentRef = componentId,
1295 + Name = name,
1296 + Domain = domain,
1297 + };
1298 +
1299 + section.Tuples.Add(tuple);
1300 }
1301 }
1302
@@ -1341,9 +1335,13 @@ namespace WixToolset.Util
1335
1336 if (!this.Messaging.EncounteredError)
1337 {
1344 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "UserGroup");
1345 - row.Set(0, userId);
1346 - row.Set(1, groupId);
1338 + var tuple = new UserGroupTuple(sourceLineNumbers)
1339 + {
1340 + UserRef = userId,
1341 + GroupRef = groupId,
1342 + };
1343 +
1344 + section.Tuples.Add(tuple);
1345 }
1346 }
1347
@@ -1356,7 +1354,7 @@ namespace WixToolset.Util
1354 private void ParseInternetShortcutElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, string defaultTarget)
1355 {
1356 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1359 - string id = null;
1357 + Identifier id = null;
1358 string name = null;
1359 string target = null;
1360 string directoryId = null;
@@ -1374,7 +1372,7 @@ namespace WixToolset.Util
1372 directoryId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1373 break;
1374 case "Id":
1377 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1375 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
1376 break;
1377 case "Name":
1378 name = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -1457,43 +1455,40 @@ namespace WixToolset.Util
1455 /// <param name="id">Identifier of shortcut.</param>
1456 /// <param name="name">Name of shortcut without extension.</param>
1457 /// <param name="target">Target URL of shortcut.</param>
1460 - private void CreateWixInternetShortcut(IntermediateSection section, SourceLineNumber sourceLineNumbers, string componentId, string directoryId, string shortcutId, string name, string target, InternetShortcutType type, string iconFile, int iconIndex)
1458 + private void CreateWixInternetShortcut(IntermediateSection section, SourceLineNumber sourceLineNumbers, string componentId, string directoryId, Identifier shortcutId, string name, string target, InternetShortcutType type, string iconFile, int iconIndex)
1459 {
1460 // add the appropriate extension based on type of shortcut
1461 name = String.Concat(name, InternetShortcutType.Url == type ? ".url" : ".lnk");
1462
1465 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixInternetShortcut");
1466 - row.Set(0, shortcutId);
1467 - row.Set(1, componentId);
1468 - row.Set(2, directoryId);
1469 - row.Set(3, name);
1470 - row.Set(4, target);
1471 - row.Set(5, (int)type);
1472 - row.Set(6, iconFile);
1473 - row.Set(7, iconIndex);
1474 -
1475 - // Reference custom action because nothing will happen without it
1476 - if (this.Context.Platform == Platform.ARM)
1477 - {
1478 - // Ensure ARM version of the CA is referenced
1479 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedInternetShortcuts_ARM");
1480 - }
1481 - else
1463 + var tuple = new WixInternetShortcutTuple(sourceLineNumbers, shortcutId)
1464 {
1483 - // All other supported platforms use x86
1484 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedInternetShortcuts");
1485 - }
1465 + ComponentRef = componentId,
1466 + DirectoryRef = directoryId,
1467 + Name = name,
1468 + Target = target,
1469 + Attributes = (int)type,
1470 + IconFile = iconFile,
1471 + IconIndex = iconIndex,
1472 + };
1473 +
1474 + section.Tuples.Add(tuple);
1475 +
1476 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedInternetShortcuts", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
1477
1478 // make sure we have a CreateFolder table so that the immediate CA can add temporary rows to handle installation and uninstallation
1479 this.ParseHelper.EnsureTable(section, sourceLineNumbers, "CreateFolder");
1480
1481 // use built-in MSI functionality to remove the shortcuts rather than doing so via CA
1491 - row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "RemoveFile");
1492 - row.Set(0, shortcutId);
1493 - row.Set(1, componentId);
1494 - row.Set(2, this.ParseHelper.IsValidShortFilename(name, false) ? name : String.Concat(this.ParseHelper.CreateShortName(name, true, false, directoryId, name), "|", name));
1495 - row.Set(3, directoryId);
1496 - row.Set(4, 2); // msidbRemoveFileInstallModeOnRemove
1482 + var removeFileTuple = new RemoveFileTuple(sourceLineNumbers, shortcutId)
1483 + {
1484 + ComponentRef = componentId,
1485 + DirProperty = directoryId,
1486 + OnUninstall = true,
1487 + // TODO: A better way?
1488 + FileName = this.ParseHelper.IsValidShortFilename(name, false) ? name : String.Concat(this.ParseHelper.CreateShortName(name, true, false, directoryId, name), "|", name),
1489 + };
1490 +
1491 + section.Tuples.Add(removeFileTuple);
1492 }
1493
1494 /// <summary>
@@ -1504,7 +1499,7 @@ namespace WixToolset.Util
1499 private void ParsePerformanceCategoryElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
1500 {
1501 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
1507 - string id = null;
1502 + Identifier id = null;
1503 string name = null;
1504 string help = null;
1505 YesNoType multiInstance = YesNoType.No;
@@ -1537,7 +1532,7 @@ namespace WixToolset.Util
1532 help = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
1533 break;
1534 case "Id":
1540 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
1535 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
1536 break;
1537 case "Library":
1538 library = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -1569,7 +1564,7 @@ namespace WixToolset.Util
1564
1565 if (null == name)
1566 {
1572 - name = id;
1567 + name = id?.Id;
1568 }
1569
1570 // Process the child counter elements.
@@ -1641,12 +1636,15 @@ namespace WixToolset.Util
1636 sbSymbolicConstants.AppendFormat("#define LAST_{0}_COUNTER_OFFSET {1}\r\n", objectName, symbolConstantsCounter);
1637
1638 // Add the calculated INI and H strings to the PerformanceCategory table.
1644 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "PerformanceCategory");
1645 - row.Set(0, id);
1646 - row.Set(1, componentId);
1647 - row.Set(2, name);
1648 - row.Set(3, sbIniData.ToString());
1649 - row.Set(4, sbSymbolicConstants.ToString());
1639 + var tuple = new PerformanceCategoryTuple(sourceLineNumbers, id)
1640 + {
1641 + ComponentRef = componentId,
1642 + Name = name,
1643 + IniData = sbIniData.ToString(),
1644 + ConstantData = sbSymbolicConstants.ToString(),
1645 + };
1646 +
1647 + section.Tuples.Add(tuple);
1648
1649 // Set up the application's performance key.
1650 string escapedName = UtilCompiler.FindPropertyBrackets.Replace(name, this.EscapeProperties);
@@ -1664,19 +1662,8 @@ namespace WixToolset.Util
1662 this.ParseHelper.CreateRegistryTuple(section, sourceLineNumbers, RegistryRootType.LocalMachine, performanceKey, "Counter Types", sbCounterTypes.ToString(), componentId, false);
1663 }
1664
1667 - // Reference InstallPerfCounterData and UninstallPerfCounterData since nothing will happen without them
1668 - if (this.Context.Platform == Platform.ARM)
1669 - {
1670 - // Ensure ARM version of the CAs are referenced
1671 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "InstallPerfCounterData_ARM");
1672 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "UninstallPerfCounterData_ARM");
1673 - }
1674 - else
1675 - {
1676 - // All other supported platforms use x86
1677 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "InstallPerfCounterData");
1678 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "UninstallPerfCounterData");
1679 - }
1665 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "InstallPerfCounterData", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
1666 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "UninstallPerfCounterData", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
1667 }
1668
1669 /// <summary>
@@ -2146,25 +2133,18 @@ namespace WixToolset.Util
2133
2134 if (!this.Messaging.EncounteredError)
2135 {
2149 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "Perfmon");
2150 - row.Set(0, componentId);
2151 - row.Set(1, $"[#{fileId}]");
2152 - row.Set(2, name);
2153 - }
2136 + var tuple = new PerfmonTuple(sourceLineNumbers)
2137 + {
2138 + ComponentRef = componentId,
2139 + File = $"[#{fileId}]",
2140 + Name = name,
2141 + };
2142
2155 - // Reference ConfigurePerfmonInstall and ConfigurePerfmonUninstall since nothing will happen without them
2156 - if (this.Context.Platform == Platform.ARM)
2157 - {
2158 - // Ensure ARM version of the CAs are referenced
2159 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonInstall_ARM");
2160 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonUninstall_ARM");
2161 - }
2162 - else
2163 - {
2164 - // All other supported platforms use x86
2165 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonInstall");
2166 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonUninstall");
2143 + section.Tuples.Add(tuple);
2144 }
2145 +
2146 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonInstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2147 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonUninstall", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2148 }
2149
2150
@@ -2203,24 +2183,18 @@ namespace WixToolset.Util
2183
2184 if (!this.Messaging.EncounteredError)
2185 {
2206 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "PerfmonManifest");
2207 - row.Set(0, componentId);
2208 - row.Set(1, $"[#{fileId}]");
2209 - row.Set(2, resourceFileDirectory);
2210 - }
2186 + var tuple = new PerfmonManifestTuple(sourceLineNumbers)
2187 + {
2188 + ComponentRef = componentId,
2189 + File = $"[#{fileId}]",
2190 + ResourceFileDirectory = resourceFileDirectory,
2191 + };
2192
2212 - if (this.Context.Platform == Platform.ARM)
2213 - {
2214 - // Ensure ARM version of the CAs are referenced
2215 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestRegister_ARM");
2216 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestUnregister_ARM");
2217 - }
2218 - else
2219 - {
2220 - // All other supported platforms use x86
2221 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestRegister");
2222 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigurePerfmonManifestUnregister");
2193 + section.Tuples.Add(tuple);
2194 }
2195 +
2196 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonManifestRegister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2197 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigurePerfmonManifestUnregister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2198 }
2199
2200 /// <summary>
@@ -2263,23 +2237,15 @@ namespace WixToolset.Util
2237
2238 if (!this.Messaging.EncounteredError)
2239 {
2266 - switch (this.Context.Platform)
2240 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedFormatFiles", this.Context.Platform, CustomActionPlatforms.X64 | CustomActionPlatforms.X86);
2241 +
2242 + var tuple = new WixFormatFilesTuple(sourceLineNumbers)
2243 {
2268 - case Platform.X86:
2269 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedFormatFiles");
2270 - break;
2271 - case Platform.X64:
2272 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixSchedFormatFiles_x64");
2273 - break;
2274 - case Platform.IA64:
2275 - case Platform.ARM:
2276 - this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, this.Context.Platform.ToString(), element.Name.LocalName));
2277 - break;
2278 - }
2244 + BinaryRef = binaryId,
2245 + FileRef = fileId,
2246 + };
2247
2280 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixFormatFiles");
2281 - row.Set(0, binaryId);
2282 - row.Set(1, fileId);
2248 + section.Tuples.Add(tuple);
2249
2250 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "Binary", binaryId);
2251 }
@@ -2328,71 +2294,62 @@ namespace WixToolset.Util
2294
2295 if (!this.Messaging.EncounteredError)
2296 {
2331 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "EventManifest");
2332 - row.Set(0, componentId);
2333 - row.Set(1, $"[#{fileId}]");
2297 + var tuple = new EventManifestTuple(sourceLineNumbers)
2298 + {
2299 + ComponentRef = componentId,
2300 + File = $"[#{fileId}]",
2301 + };
2302 +
2303 + section.Tuples.Add(tuple);
2304
2305 if (null != messageFile)
2306 {
2337 - var messageRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile");
2338 - messageRow.Set(0, String.Concat("Config_", fileId, "MessageFile"));
2339 - messageRow.Set(1, $"[#{fileId}]");
2340 - messageRow.Set(2, "/*/*/*/*[\\[]@messageFileName[\\]]");
2341 - messageRow.Set(3, "messageFileName");
2342 - messageRow.Set(4, messageFile);
2343 - messageRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date
2344 - messageRow.Set(6, componentId);
2307 + var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}MessageFile"))
2308 + {
2309 + File = $"[#{fileId}]",
2310 + ElementPath = "/*/*/*/*[\\[]@messageFileName[\\]]",
2311 + Name = "messageFileName",
2312 + Value = messageFile,
2313 + Flags = 4 | 0x00001000, //bulk write | preserve modified date
2314 + ComponentRef = componentId,
2315 + };
2316 + section.Tuples.Add(xmlTuple);
2317 }
2318 if (null != parameterFile)
2319 {
2348 - var resourceRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile");
2349 - resourceRow.Set(0, String.Concat("Config_", fileId, "ParameterFile"));
2350 - resourceRow.Set(1, $"[#{fileId}]");
2351 - resourceRow.Set(2, "/*/*/*/*[\\[]@parameterFileName[\\]]");
2352 - resourceRow.Set(3, "parameterFileName");
2353 - resourceRow.Set(4, parameterFile);
2354 - resourceRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date
2355 - resourceRow.Set(6, componentId);
2320 + var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}ParameterFile"))
2321 + {
2322 + File = $"[#{fileId}]",
2323 + ElementPath = "/*/*/*/*[\\[]@parameterFileName[\\]]",
2324 + Name = "parameterFileName",
2325 + Value = parameterFile,
2326 + Flags = 4 | 0x00001000, //bulk write | preserve modified date
2327 + ComponentRef = componentId,
2328 + };
2329 + section.Tuples.Add(xmlTuple);
2330 }
2331 if (null != resourceFile)
2332 {
2359 - var resourceRow = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile");
2360 - resourceRow.Set(0, String.Concat("Config_", fileId, "ResourceFile"));
2361 - resourceRow.Set(1, $"[#{fileId}]");
2362 - resourceRow.Set(2, "/*/*/*/*[\\[]@resourceFileName[\\]]");
2363 - resourceRow.Set(3, "resourceFileName");
2364 - resourceRow.Set(4, resourceFile);
2365 - resourceRow.Set(5, 4 | 0x00001000); //bulk write | preserve modified date
2366 - resourceRow.Set(6, componentId);
2333 + var xmlTuple = new XmlFileTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, $"Config_{fileId}ResourceFile"))
2334 + {
2335 + File = $"[#{fileId}]",
2336 + ElementPath = "/*/*/*/*[\\[]@resourceFileName[\\]]",
2337 + Name = "resourceFileName",
2338 + Value = resourceFile,
2339 + Flags = 4 | 0x00001000, //bulk write | preserve modified date
2340 + ComponentRef = componentId,
2341 + };
2342 + section.Tuples.Add(xmlTuple);
2343 }
2344
2345 }
2346
2371 - if (this.Context.Platform == Platform.ARM)
2372 - {
2373 - // Ensure ARM version of the CA is referenced
2374 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestRegister_ARM");
2375 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestUnregister_ARM");
2376 - }
2377 - else
2378 - {
2379 - // All other supported platforms use x86
2380 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestRegister");
2381 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureEventManifestUnregister");
2382 - }
2347 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureEventManifestRegister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2348 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureEventManifestUnregister", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2349
2350 if (null != messageFile || null != parameterFile || null != resourceFile)
2351 {
2386 - if (this.Context.Platform == Platform.ARM)
2387 - {
2388 - // Ensure ARM version of the CA is referenced
2389 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile_ARM");
2390 - }
2391 - else
2392 - {
2393 - // All other supported platforms use x86
2394 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile");
2395 - }
2352 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlFile", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2353 }
2354 }
2355
@@ -2493,36 +2450,18 @@ namespace WixToolset.Util
2450
2451 if (!this.Messaging.EncounteredError)
2452 {
2496 - if (win64)
2497 - {
2498 - if (this.Context.Platform == Platform.IA64)
2499 - {
2500 - this.Messaging.Write(ErrorMessages.UnsupportedPlatformForElement(sourceLineNumbers, "ia64", element.Name.LocalName));
2501 - }
2502 - else
2503 - {
2504 - // Ensure SchedSecureObjects (x64) is referenced
2505 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects_x64");
2506 - }
2507 - }
2508 - else if (this.Context.Platform == Platform.ARM)
2509 - {
2510 - // Ensure SchedSecureObjects (arm) is referenced
2511 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects_ARM");
2512 - }
2513 - else
2453 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedSecureObjects", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X64 | CustomActionPlatforms.X86);
2454 +
2455 + var tuple = new SecureObjectsTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, objectId))
2456 {
2515 - // Ensure SchedSecureObjects (x86) is referenced, to handle this x86 component member
2516 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedSecureObjects");
2517 - }
2457 + Table = tableName,
2458 + Domain = domain,
2459 + User = user,
2460 + Permission = permission,
2461 + ComponentRef = componentId,
2462 + };
2463
2519 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "SecureObjects");
2520 - row.Set(0, objectId);
2521 - row.Set(1, tableName);
2522 - row.Set(2, domain);
2523 - row.Set(3, user);
2524 - row.Set(4, permission);
2525 - row.Set(5, componentId);
2464 + section.Tuples.Add(tuple);
2465 }
2466 }
2467
@@ -2881,13 +2820,18 @@ namespace WixToolset.Util
2820
2821 if (!this.Messaging.EncounteredError)
2822 {
2884 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixRemoveFolderEx", id);
2885 - row.Set(1, componentId);
2886 - row.Set(2, property);
2887 - row.Set(3, on);
2823 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "RemoveFoldersEx", this.Context.Platform, CustomActionPlatforms.X86);
2824 +
2825 + var tuple = new WixRemoveFolderExTuple(sourceLineNumbers)
2826 + {
2827 + ComponentRef = componentId,
2828 + Property = property,
2829 + InstallMode = (int)on,
2830 + };
2831 +
2832 + section.Tuples.Add(tuple);
2833
2834 this.ParseHelper.EnsureTable(section, sourceLineNumbers, "RemoveFile");
2890 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRemoveFoldersEx");
2835 }
2836 }
2837
@@ -2954,22 +2898,16 @@ namespace WixToolset.Util
2898
2899 if (!this.Messaging.EncounteredError)
2900 {
2957 - // Add a reference to the WixRegisterRestartResources custom action since nothing will happen without it.
2958 - if (this.Context.Platform == Platform.ARM)
2959 - {
2960 - // Ensure ARM version of the CA is referenced
2961 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRegisterRestartResources_ARM");
2962 - }
2963 - else
2901 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "RegisterRestartResources", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2902 +
2903 + var tuple = new WixRestartResourceTuple(sourceLineNumbers)
2904 {
2965 - // All other supported platforms use x86
2966 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixRegisterRestartResources");
2967 - }
2905 + ComponentRef = componentId,
2906 + Resource = resource,
2907 + Attributes = attributes,
2908 + };
2909
2969 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixRestartResource", id);
2970 - row.Set(1, componentId);
2971 - row.Set(2, resource);
2972 - row.Set(3, attributes);
2910 + section.Tuples.Add(tuple);
2911 }
2912 }
2913
@@ -3052,38 +2990,25 @@ namespace WixToolset.Util
2990
2991 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
2992
3055 - // Reference SchedServiceConfig since nothing will happen without it
3056 - if (this.Context.Platform == Platform.ARM)
3057 - {
3058 - // Ensure ARM version of the CA is referenced
3059 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedServiceConfig_ARM");
3060 - }
3061 - else
3062 - {
3063 - // All other supported platforms use x86
3064 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedServiceConfig");
3065 - }
3066 -
2993 if (!this.Messaging.EncounteredError)
2994 {
3069 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "ServiceConfig");
3070 - row.Set(0, serviceName);
3071 - row.Set(1, componentId);
3072 - row.Set(2, (newService ? 1 : 0));
3073 - row.Set(3, firstFailureActionType);
3074 - row.Set(4, secondFailureActionType);
3075 - row.Set(5, thirdFailureActionType);
3076 - if (CompilerConstants.IntegerNotSet != resetPeriod)
3077 - {
3078 - row.Set(6, resetPeriod);
3079 - }
2995 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedServiceConfig", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
2996
3081 - if (CompilerConstants.IntegerNotSet != restartServiceDelay)
2997 + var tuple = new ServiceConfigTuple(sourceLineNumbers)
2998 {
3083 - row.Set(7, restartServiceDelay);
3084 - }
3085 - row.Set(8, programCommandLine);
3086 - row.Set(9, rebootMessage);
2999 + ServiceName = serviceName,
3000 + ComponentRef = componentId,
3001 + NewService = newService ? 1 : 0,
3002 + FirstFailureActionType = firstFailureActionType,
3003 + SecondFailureActionType = secondFailureActionType,
3004 + ThirdFailureActionType = thirdFailureActionType,
3005 + ResetPeriodInDays = resetPeriod,
3006 + RestartServiceDelayInSeconds = restartServiceDelay,
3007 + ProgramCommandLine = programCommandLine,
3008 + RebootMessage = rebootMessage,
3009 + };
3010 +
3011 + section.Tuples.Add(tuple);
3012 }
3013 }
3014
@@ -3166,12 +3091,16 @@ namespace WixToolset.Util
3091
3092 if (!this.Messaging.EncounteredError)
3093 {
3169 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "WixTouchFile", id);
3170 - row.Set(1, componentId);
3171 - row.Set(2, path);
3172 - row.Set(3, attributes);
3094 + var tuple = new WixTouchFileTuple(sourceLineNumbers)
3095 + {
3096 + ComponentRef = componentId,
3097 + Path = path,
3098 + Attributes = attributes,
3099 + };
3100 +
3101 + section.Tuples.Add(tuple);
3102
3174 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "WixTouchFileDuringInstall");
3103 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "TouchFileDuringInstall", this.Context.Platform, CustomActionPlatforms.X86);
3104 }
3105 }
3106
@@ -3375,27 +3304,21 @@ namespace WixToolset.Util
3304
3305 if (null != componentId)
3306 {
3378 - // Reference ConfigureIIs since nothing will happen without it
3379 - if (this.Context.Platform == Platform.ARM)
3380 - {
3381 - // Ensure ARM version of the CA is referenced
3382 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureUsers_ARM");
3383 - }
3384 - else
3385 - {
3386 - // All other supported platforms use x86
3387 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "ConfigureUsers");
3388 - }
3307 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "ConfigureUsers", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
3308 }
3309
3310 if (!this.Messaging.EncounteredError)
3311 {
3393 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "User", id);
3394 - row.Set(1, componentId);
3395 - row.Set(2, name);
3396 - row.Set(3, domain);
3397 - row.Set(4, password);
3398 - row.Set(5, attributes);
3312 + var tuple = new UserTuple(sourceLineNumbers, id)
3313 + {
3314 + ComponentRef = componentId,
3315 + Name = name,
3316 + Domain = domain,
3317 + Password = password,
3318 + Attributes = attributes,
3319 + };
3320 +
3321 + section.Tuples.Add(tuple);
3322 }
3323 }
3324
@@ -3407,7 +3330,7 @@ namespace WixToolset.Util
3330 private void ParseXmlFileElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId)
3331 {
3332 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
3410 - string id = null;
3333 + Identifier id = null;
3334 string file = null;
3335 string elementPath = null;
3336 string name = null;
@@ -3458,7 +3381,7 @@ namespace WixToolset.Util
3381 }
3382 break;
3383 case "Id":
3461 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3384 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
3385 break;
3386 case "File":
3387 file = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
@@ -3522,31 +3445,23 @@ namespace WixToolset.Util
3445
3446 if (!this.Messaging.EncounteredError)
3447 {
3525 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlFile");
3526 - row.Set(0, id);
3527 - row.Set(1, file);
3528 - row.Set(2, elementPath);
3529 - row.Set(3, name);
3530 - row.Set(4, value);
3531 - row.Set(5, flags);
3532 - row.Set(6, componentId);
3448 + var tuple = new XmlFileTuple(sourceLineNumbers, id)
3449 + {
3450 + File = file,
3451 + ElementPath = elementPath,
3452 + Name = name,
3453 + Value = value,
3454 + Flags = flags,
3455 + ComponentRef = componentId,
3456 + };
3457 if (-1 != sequence)
3458 {
3535 - row.Set(7, sequence);
3459 + tuple.Sequence = sequence;
3460 }
3461 + section.Tuples.Add(tuple);
3462 }
3463
3539 - // Reference SchedXmlFile since nothing will happen without it
3540 - if (this.Context.Platform == Platform.ARM)
3541 - {
3542 - // Ensure ARM version of the CA is referenced
3543 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile_ARM");
3544 - }
3545 - else
3546 - {
3547 - // All other supported platforms use x86
3548 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlFile");
3549 - }
3464 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlFile", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
3465 }
3466
3467 /// <summary>
@@ -3558,7 +3473,7 @@ namespace WixToolset.Util
3473 private void ParseXmlConfigElement(Intermediate intermediate, IntermediateSection section, XElement element, string componentId, bool nested)
3474 {
3475 SourceLineNumber sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
3561 - string id = null;
3476 + Identifier id = null;
3477 string elementId = null;
3478 string elementPath = null;
3479 int flags = 0;
@@ -3575,7 +3490,7 @@ namespace WixToolset.Util
3490 switch (attrib.Name.LocalName)
3491 {
3492 case "Id":
3578 - id = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3493 + id = this.ParseHelper.GetAttributeIdentifier(sourceLineNumbers, attrib);
3494 break;
3495 case "Action":
3496 if (nested)
@@ -3760,32 +3675,24 @@ namespace WixToolset.Util
3675
3676 if (!this.Messaging.EncounteredError)
3677 {
3763 - var row = this.ParseHelper.CreateTuple(section, sourceLineNumbers, "XmlConfig");
3764 - row.Set(0, id);
3765 - row.Set(1, file);
3766 - row.Set(2, elementId ?? elementPath);
3767 - row.Set(3, verifyPath);
3768 - row.Set(4, name);
3769 - row.Set(5, value);
3770 - row.Set(6, flags);
3771 - row.Set(7, componentId);
3678 + var tuple = new XmlConfigTuple(sourceLineNumbers, id)
3679 + {
3680 + File=file,
3681 + ElementPath=elementId ??elementPath,
3682 + VerifyPath=verifyPath,
3683 + Name=name,
3684 + Value=value,
3685 + Flags=flags,
3686 + ComponentRef=componentId,
3687 + };
3688 if (CompilerConstants.IntegerNotSet != sequence)
3689 {
3774 - row.Set(8, sequence);
3690 + tuple.Sequence = sequence;
3691 }
3692 + section.Tuples.Add(tuple);
3693 }
3694
3778 - // Reference SchedXmlConfig since nothing will happen without it
3779 - if (this.Context.Platform == Platform.ARM)
3780 - {
3781 - // Ensure ARM version of the CA is referenced
3782 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlConfig_ARM");
3783 - }
3784 - else
3785 - {
3786 - // All other supported platforms use x86
3787 - this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "CustomAction", "SchedXmlConfig");
3788 - }
3695 + this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, "SchedXmlConfig", this.Context.Platform, CustomActionPlatforms.ARM | CustomActionPlatforms.X86);
3696 }
3697
3698 /// <summary>
src/wixext/UtilWindowsInstallerBackendExtension.cs
+7
@@ -5,6 +5,7 @@ namespace WixToolset.Util
5 using System.Collections.Generic;
6 using System.Linq;
7 using System.Xml;
8 + using WixToolset.Data;
9 using WixToolset.Data.WindowsInstaller;
10 using WixToolset.Extensibility;
11
@@ -14,6 +15,12 @@ namespace WixToolset.Util
15
16 public override IEnumerable<TableDefinition> TableDefinitions { get => Tables; }
17
18 + public override bool TryAddTupleToOutput(IntermediateTuple tuple, WindowsInstallerData output)
19 + {
20 + var columnZeroIsId = tuple.Id != null;
21 + return this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, this.TableDefinitions, columnZeroIsId);
22 + }
23 +
24 private static TableDefinition[] LoadTables()
25 {
26 using (var resourceStream = typeof(UtilWindowsInstallerBackendBinderExtension).Assembly.GetManifestResourceStream("WixToolset.Util.tables.xml"))
src/wixext/WixToolset.Util.wixext.csproj
+1
@@ -19,6 +19,7 @@
19 </ItemGroup>
20
21 <ItemGroup>
22 + <PackageReference Include="WixToolset.Core" Version="4.0.*" PrivateAssets="all" />
23 <PackageReference Include="WixToolset.Data" Version="4.0.*" PrivateAssets="all" />
24 <PackageReference Include="WixToolset.Extensibility" Version="4.0.*" PrivateAssets="all" />
25 </ItemGroup>
src/wixext/tables.xml
+41 -45
@@ -3,8 +3,8 @@
3
4
5 <tableDefinitions xmlns="http://wixtoolset.org/schemas/v4/wi/tables">
6 - <tableDefinition name="WixCloseApplication">
7 - <columnDefinition name="WixCloseApplication" type="string" length="72" primaryKey="yes" modularize="column"
6 + <tableDefinition name="Wix4CloseApplication" tupleDefinitionName="WixCloseApplication">
7 + <columnDefinition name="Wix4CloseApplication" type="string" length="72" primaryKey="yes" modularize="column"
8 category="identifier" description="Primary key, non-localized token in table."/>
9 <columnDefinition name="Target" type="localized" length="0" modularize="property"
10 category="formatted" description="Name of executable to ensure is closed."/>
@@ -23,8 +23,8 @@
23 <columnDefinition name="Timeout" type="number" length="4" nullable="yes"
24 minValue="1" maxValue="2147483647" description="Timeout in milliseconds before scheduling restart or terminating application."/>
25 </tableDefinition>
26 - <tableDefinition name="WixRemoveFolderEx" createSymbols="yes">
27 - <columnDefinition name="WixRemoveFolderEx" type="string" length="72" primaryKey="yes" modularize="column"
26 + <tableDefinition name="Wix4RemoveFolderEx" tupleDefinitionName="WixRemoveFolderEx" createSymbols="yes">
27 + <columnDefinition name="Wix4RemoveFolderEx" type="string" length="72" primaryKey="yes" modularize="column"
28 category="identifier" description="Identifier for the WixRemoveFolderEx row in the package."/>
29 <columnDefinition name="Component_" type="string" length="72" modularize="column"
30 keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/>
@@ -33,8 +33,8 @@
33 <columnDefinition name="InstallMode" type="number" length="2"
34 minValue="1" maxValue="3" description="1 == Remove only when the associated component is being installed (msiInstallStateLocal or msiInstallStateSource), 2 == Remove only when the associated component is being removed (msiInstallStateAbsent), 3 = Remove in either of the above cases."/>
35 </tableDefinition>
36 - <tableDefinition name="WixRestartResource">
37 - <columnDefinition name="WixRestartResource" type="string" length="72" primaryKey="yes" modularize="column"
36 + <tableDefinition name="Wix4RestartResource" tupleDefinitionName="WixRestartResource">
37 + <columnDefinition name="Wix4RestartResource" type="string" length="72" primaryKey="yes" modularize="column"
38 category="identifier" description="Primary key, non-localized identifier."/>
39 <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column"
40 keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state."/>
@@ -43,8 +43,8 @@
43 <columnDefinition name="Attributes" type="number" length="4"
44 minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the type of resource and flags used for processing."/>
45 </tableDefinition>
46 - <tableDefinition name="FileShare" createSymbols="yes">
47 - <columnDefinition name="FileShare" type="string" length="72" primaryKey="yes" modularize="column"
46 + <tableDefinition name="Wix4FileShare" tupleDefinitionName="FileShare" createSymbols="yes">
47 + <columnDefinition name="Wix4FileShare" type="string" length="72" primaryKey="yes" modularize="column"
48 category="identifier" description="Primary key, non-localized identifier"/>
49 <columnDefinition name="ShareName" type="string" length="255"
50 category="formatted" description="The actual share name used"/>
@@ -54,21 +54,17 @@
54 category="text" description="Description string displayed for the file share"/>
55 <columnDefinition name="Directory_" type="string" length="72" modularize="column"
56 keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key referencing directory that the share is created on"/>
57 - <columnDefinition name="User_" type="string" length="72" modularize="column" nullable="yes"
58 - keyTable="User" keyColumn="1" category="identifier" description="Foreign key, User to give access permissions to"/>
59 - <columnDefinition name="Permissions" type="number" length="4" nullable="yes"
60 - description="Permissions int, as in EXPLICIT_ACCESS.grfAccessPermissions in MSDN"/>
57 </tableDefinition>
62 - <tableDefinition name="FileSharePermissions">
63 - <columnDefinition name="FileShare_" type="string" length="72" primaryKey="yes" modularize="column"
58 + <tableDefinition name="Wix4FileSharePermissions" tupleDefinitionName="FileSharePermissions">
59 + <columnDefinition name="Wix4FileShare_" type="string" length="72" primaryKey="yes" modularize="column"
60 keyTable="FileShare" keyColumn="1" category="identifier" description="FileShare that these premissions are to be applied to."/>
65 - <columnDefinition name="User_" type="string" length="72" primaryKey="yes" modularize="column"
66 - category="identifier" description="User that these premissions are to apply to."/>
61 + <columnDefinition name="Wix4User_" type="string" length="72" primaryKey="yes" modularize="column"
62 + keyTable="Wix4User" category="identifier" description="User that these premissions are to apply to."/>
63 <columnDefinition name="Permissions" type="number" length="4"
64 description="Permissions int, as in EXPLICIT_ACCESS.grfAccessPermissions in MSDN"/>
65 </tableDefinition>
70 - <tableDefinition name="Group" createSymbols="yes">
71 - <columnDefinition name="Group" type="string" length="72" primaryKey="yes" modularize="column"
66 + <tableDefinition name="Wix4Group" tupleDefinitionName="Group" createSymbols="yes">
67 + <columnDefinition name="Wix4Group" type="string" length="72" primaryKey="yes" modularize="column"
68 category="identifier" description="Primary key, non-localized token"/>
69 <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column"
70 keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/>
@@ -77,8 +73,8 @@
73 <columnDefinition name="Domain" type="string" length="255" nullable="yes" modularize="property"
74 category="formatted" description="Group domain"/>
75 </tableDefinition>
80 - <tableDefinition name="WixInternetShortcut" createSymbols="yes">
81 - <columnDefinition name="WixInternetShortcut" type="string" length="72" primaryKey="yes" modularize="column"
76 + <tableDefinition name="Wix4InternetShortcut" tupleDefinitionName="WixInternetShortcut" createSymbols="yes">
77 + <columnDefinition name="Wix4InternetShortcut" type="string" length="72" primaryKey="yes" modularize="column"
78 category="identifier" description="Primary key, non-localized token in table."/>
79 <columnDefinition name="Component_" type="string" length="72" modularize="column"
80 keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/>
@@ -95,8 +91,8 @@
91 <columnDefinition name="IconIndex" type="number" length="4"
92 nullable="yes" description="Index of the icon being referenced."/>
93 </tableDefinition>
98 - <tableDefinition name="PerformanceCategory">
99 - <columnDefinition name="PerformanceCategory" type="string" length="72" primaryKey="yes" modularize="column"
94 + <tableDefinition name="Wix4PerformanceCategory" tupleDefinitionName="PerformanceCategory">
95 + <columnDefinition name="Wix4PerformanceCategory" type="string" length="72" primaryKey="yes" modularize="column"
96 category="identifier" description="Primary key, non-localized token in table."/>
97 <columnDefinition name="Component_" type="string" length="72" modularize="column"
98 keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/>
@@ -107,7 +103,7 @@
103 <columnDefinition name="ConstantData" type="localized" length="0" escapeIdtCharacters="yes"
104 category="text" description="Data that goes into the performance counter .h file."/>
105 </tableDefinition>
110 - <tableDefinition name="Perfmon">
106 + <tableDefinition name="Wix4Perfmon" tupleDefinitionName="Perfmon">
107 <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column"
108 keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/>
109 <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property"
@@ -115,7 +111,7 @@
111 <columnDefinition name="Name" type="string" length="72" primaryKey="yes"
112 category="text" description="Service name in registry"/>
113 </tableDefinition>
118 - <tableDefinition name="PerfmonManifest">
114 + <tableDefinition name="Wix4PerfmonManifest" tupleDefinitionName="PerfmonManifest">
115 <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column"
116 keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/>
117 <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property"
@@ -123,27 +119,27 @@
119 <columnDefinition name="ResourceFileDirectory" type="string" length="255" primaryKey="yes"
120 category="formatted" description="The path of the Resource File Directory"/>
121 </tableDefinition>
126 - <tableDefinition name="EventManifest">
122 + <tableDefinition name="Wix4EventManifest" tupleDefinitionName="EventManifest">
123 <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column"
124 keyTable="Component" keyColumn="1" category="identifier" description="Component used to determine install state"/>
125 <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="property"
126 category="formatted" description="Name of event manifest file"/>
127 </tableDefinition>
132 - <tableDefinition name="SecureObjects">
133 - <columnDefinition name="SecureObject" type="string" length="72" primaryKey="yes" modularize="column"
128 + <tableDefinition name="Wix4SecureObject" tupleDefinitionName="SecureObjects">
129 + <columnDefinition name="Wix4SecureObject" type="string" length="72" primaryKey="yes" modularize="column"
130 category="identifier" description="Primary key, non-localized token in Table"/>
131 <columnDefinition name="Table" type="string" length="32" primaryKey="yes"
132 category="text" description="Table SecureObject should be securing"/>
133 <columnDefinition name="Domain" type="string" length="255" primaryKey="yes" nullable="yes" modularize="property"
134 category="text" description="Domain half of user account to secure"/>
135 <columnDefinition name="User" type="string" length="255" primaryKey="yes" modularize="property"
140 - category="text" description="Username half of user account to secure"/>
136 + category="text" description="User name half of user account to secure"/>
137 <columnDefinition name="Permission" type="number" length="4" nullable="yes"
138 minValue="-2147483647" maxValue="2147483647" description="Permissions to grant to User"/>
139 <columnDefinition name="Component_" type="string" length="72" modularize="column"
140 keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/>
141 </tableDefinition>
146 - <tableDefinition name="ServiceConfig">
142 + <tableDefinition name="Wix4ServiceConfig" tupleDefinitionName="ServiceConfig">
143 <columnDefinition name="ServiceName" type="string" length="72" primaryKey="yes"
144 category="formatted" description="Primary key, non-localized token"/>
145 <columnDefinition name="Component_" type="string" length="72" modularize="column"
@@ -165,9 +161,9 @@
161 <columnDefinition name="RebootMessage" type="string" length="255" nullable="yes"
162 category="text" description="Message to show to users when rebooting if failure action is REBOOT."/>
163 </tableDefinition>
168 - <tableDefinition name="WixTouchFile" createSymbols="yes">
169 - <columnDefinition name="WixTouchFile" type="string" length="72" primaryKey="yes" modularize="column"
170 - category="identifier" description="Identifier for the WixTouchFile row in the package."/>
164 + <tableDefinition name="Wix4TouchFile" tupleDefinitionName="WixTouchFile" createSymbols="yes">
165 + <columnDefinition name="Wix4TouchFile" type="string" length="72" primaryKey="yes" modularize="column"
166 + category="identifier" description="Identifier for the Wix4TouchFile row in the package."/>
167 <columnDefinition name="Component_" type="string" length="72" modularize="column"
168 keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table used to determine install state"/>
169 <columnDefinition name="Path" type="string" length="255" modularize="property"
@@ -175,8 +171,8 @@
171 <columnDefinition name="Attributes" type="number" length="2"
172 minValue="1" maxValue="63" description="1 == Touch only when the associated component is being installed, 2 == Touch only when the associated component is being repaired , 4 == Touch only when the associated component is being removed, 16 = path is in 64-bit location, 32 = touching the file is vital."/>
173 </tableDefinition>
178 - <tableDefinition name="User" createSymbols="yes">
179 - <columnDefinition name="User" type="string" length="72" primaryKey="yes" modularize="column"
174 + <tableDefinition name="Wix4User" tupleDefinitionName="User" createSymbols="yes">
175 + <columnDefinition name="Wix4User" type="string" length="72" primaryKey="yes" modularize="column"
176 category="identifier" description="Primary key, non-localized token"/>
177 <columnDefinition name="Component_" type="string" length="72" nullable="yes" modularize="column"
178 keyTable="Component" keyColumn="1" category="text" description="Foreign key, Component used to determine install state"/>
@@ -189,14 +185,14 @@
185 <columnDefinition name="Attributes" type="number" length="4" nullable="yes"
186 minValue="0" maxValue="65535" description="Attributes describing how to create the user"/>
187 </tableDefinition>
192 - <tableDefinition name="UserGroup">
193 - <columnDefinition name="User_" type="string" length="72" primaryKey="yes" modularize="column"
194 - keyTable="User" keyColumn="1" category="identifier" description="User to be joined to a Group."/>
195 - <columnDefinition name="Group_" type="string" length="72" primaryKey="yes" modularize="column"
196 - keyTable="Group" keyColumn="1" category="identifier" description="User to be joined to a Group."/>
188 + <tableDefinition name="Wix4UserGroup" tupleDefinitionName="UserGroup">
189 + <columnDefinition name="Wix4User_" type="string" length="72" primaryKey="yes" modularize="column"
190 + keyTable="Wix4User" keyColumn="1" category="identifier" description="User to be joined to a Group."/>
191 + <columnDefinition name="Wix4Group_" type="string" length="72" primaryKey="yes" modularize="column"
192 + keyTable="Wix4Group" keyColumn="1" category="identifier" description="Group to join User to."/>
193 </tableDefinition>
198 - <tableDefinition name="XmlFile">
199 - <columnDefinition name="XmlFile" type="string" length="72" primaryKey="yes" modularize="column"
194 + <tableDefinition name="Wix4XmlFile" tupleDefinitionName="XmlFile">
195 + <columnDefinition name="Wix4XmlFile" type="string" length="72" primaryKey="yes" modularize="column"
196 category="identifier" description="Primary key, non-localized token."/>
197 <columnDefinition name="File" type="localized" length="255" modularize="property"
198 category="formatted" description="The .XML file in which to write the information"/>
@@ -213,13 +209,13 @@
209 <columnDefinition name="Sequence" type="number" length="2" nullable="yes"
210 description="Order to execute the XML modifications."/>
211 </tableDefinition>
216 - <tableDefinition name="XmlConfig" createSymbols="yes">
217 - <columnDefinition name="XmlConfig" type="string" length="72" primaryKey="yes" modularize="column"
212 + <tableDefinition name="Wix4XmlConfig" tupleDefinitionName="XmlConfig" createSymbols="yes">
213 + <columnDefinition name="Wix4XmlConfig" type="string" length="72" primaryKey="yes" modularize="column"
214 category="identifier" description="Primary key, non-localized token."/>
215 <columnDefinition name="File" type="localized" length="255" modularize="property"
216 category="formatted" description="The .XML file in which to write the information"/>
217 <columnDefinition name="ElementPath" type="localized" length="0" modularize="property"
222 - category="formatted" description="The XPATH query for an element to modify or add children to. Can also be a foreign key reference to another XmlConfig row if no attributes are set and the row referenced is a create element row."/>
218 + category="formatted" description="The XPATH query for an element to modify or add children to. Can also be a foreign key reference to another Wix4XmlConfig row if no attributes are set and the row referenced is a create element row."/>
219 <columnDefinition name="VerifyPath" type="localized" length="0" modularize="property" nullable="yes"
220 category="formatted" description="The XPATH query run from ElementPath to verify whether a repair is necessary. Also used to uninstall."/>
221 <columnDefinition name="Name" type="localized" length="255" modularize="property" nullable="yes"
@@ -233,7 +229,7 @@
229 <columnDefinition name="Sequence" type="number" length="2" nullable="yes"
230 description="Order to execute the XML modifications."/>
231 </tableDefinition>
236 - <tableDefinition name="WixFormatFiles">
232 + <tableDefinition name="Wix4FormatFile" tupleDefinitionName="WixFormatFile">
233 <columnDefinition name="Binary_" type="string" length="72" primaryKey="yes" modularize="column"
234 keyTable="Binary" keyColumn="1" category="identifier" description="Binary data to be formatted."/>
235 <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column"
src/wixlib/UtilExtension.wxs
+86 -95
@@ -3,6 +3,7 @@
3
4
5 <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
6 + <?include caDecor.wxi ?>
7 <?include caerr.wxi ?>
8
9 <Fragment>
@@ -63,368 +64,358 @@
64 </Fragment>
65
66 <Fragment>
66 - <CustomAction Id="WixFailWhenDeferred" BinaryKey="UtilCA" DllEntry="WixFailWhenDeferred" Execute="deferred" Return="check" SuppressModularization="yes" />
67 + <CustomAction Id="$(var.Prefix)FailWhenDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixFailWhenDeferred" Execute="deferred" Return="check" SuppressModularization="yes" />
68
69 <InstallExecuteSequence>
69 - <Custom Action="WixFailWhenDeferred" Before="InstallFinalize" Overridable="yes">WIXFAILWHENDEFERRED=1 AND VersionNT &gt; 400</Custom>
70 + <Custom Action="$(var.Prefix)FailWhenDeferred$(var.Suffix)" Before="InstallFinalize" Overridable="yes">WIXFAILWHENDEFERRED=1 AND VersionNT &gt; 400</Custom>
71 </InstallExecuteSequence>
72 </Fragment>
73
74 <Fragment>
74 - <CustomAction Id="WixWaitForEvent" BinaryKey="UtilCA" DllEntry="WixWaitForEvent" Execute="immediate" Return="check" SuppressModularization="yes" />
75 + <CustomAction Id="$(var.Prefix)WaitForEvent$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixWaitForEvent" Execute="immediate" Return="check" SuppressModularization="yes" />
76
77 <InstallExecuteSequence>
77 - <Custom Action="WixWaitForEvent" Before="InstallFinalize" Overridable="yes" />
78 + <Custom Action="$(var.Prefix)WaitForEvent$(var.Suffix)" Before="InstallFinalize" Overridable="yes" />
79 </InstallExecuteSequence>
80 </Fragment>
81
82 <Fragment>
82 - <CustomAction Id="WixWaitForEventDeferred" BinaryKey="UtilCA" DllEntry="WixWaitForEvent" Execute="deferred" Return="check" SuppressModularization="yes" />
83 + <CustomAction Id="$(var.Prefix)WaitForEventDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixWaitForEvent" Execute="deferred" Return="check" SuppressModularization="yes" />
84
85 <InstallExecuteSequence>
85 - <Custom Action="WixWaitForEventDeferred" After="InstallInitialize" Overridable="yes" />
86 + <Custom Action="$(var.Prefix)WaitForEventDeferred$(var.Suffix)" After="InstallInitialize" Overridable="yes" />
87 </InstallExecuteSequence>
88 </Fragment>
89
90 <Fragment>
90 - <CustomAction Id="WixExitEarlyWithSuccess" BinaryKey="UtilCA" DllEntry="WixExitEarlyWithSuccess" Execute="immediate" Return="check" SuppressModularization="yes" />
91 + <CustomAction Id="$(var.Prefix)ExitEarlyWithSuccess$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExitEarlyWithSuccess" Execute="immediate" Return="check" SuppressModularization="yes" />
92
93 <InstallExecuteSequence>
93 - <Custom Action="WixExitEarlyWithSuccess" After="FindRelatedProducts" Overridable="yes">NEWERVERSIONDETECTED AND VersionNT &gt; 400</Custom>
94 + <Custom Action="$(var.Prefix)ExitEarlyWithSuccess$(var.Suffix)" After="FindRelatedProducts" Overridable="yes">NEWERVERSIONDETECTED AND VersionNT &gt; 400</Custom>
95 </InstallExecuteSequence>
96 </Fragment>
97
98 <Fragment>
98 - <CustomAction Id="WixRemoveFoldersEx" BinaryKey="UtilCA" DllEntry="WixRemoveFoldersEx" Execute="immediate" Return="ignore" />
99 + <CustomAction Id="$(var.Prefix)RemoveFoldersEx$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRemoveFoldersEx" Execute="immediate" Return="ignore" />
100
101 <InstallExecuteSequence>
101 - <Custom Action="WixRemoveFoldersEx" Before="CostInitialize" />
102 + <Custom Action="$(var.Prefix)RemoveFoldersEx$(var.Suffix)" Before="CostInitialize" />
103 </InstallExecuteSequence>
104 </Fragment>
105
106 <Fragment>
106 - <CustomAction Id="WixBroadcastSettingChange" BinaryKey="UtilCA" DllEntry="WixBroadcastSettingChange" Execute="immediate" Return="ignore" SuppressModularization="yes" />
107 + <CustomAction Id="$(var.Prefix)BroadcastSettingChange$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixBroadcastSettingChange" Execute="immediate" Return="ignore" SuppressModularization="yes" />
108
109 <InstallExecuteSequence>
109 - <Custom Action="WixBroadcastSettingChange" After="InstallFinalize" Overridable="yes" />
110 + <Custom Action="$(var.Prefix)BroadcastSettingChange$(var.Suffix)" After="InstallFinalize" Overridable="yes" />
111 </InstallExecuteSequence>
112 </Fragment>
113
114 <Fragment>
114 - <CustomAction Id="WixBroadcastEnvironmentChange" BinaryKey="UtilCA" DllEntry="WixBroadcastEnvironmentChange" Execute="immediate" Return="ignore" SuppressModularization="yes" />
115 + <CustomAction Id="$(var.Prefix)BroadcastEnvironmentChange$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixBroadcastEnvironmentChange" Execute="immediate" Return="ignore" SuppressModularization="yes" />
116
117 <InstallExecuteSequence>
117 - <Custom Action="WixBroadcastEnvironmentChange" After="InstallFinalize" Overridable="yes" />
118 + <Custom Action="$(var.Prefix)BroadcastEnvironmentChange$(var.Suffix)" After="InstallFinalize" Overridable="yes" />
119 </InstallExecuteSequence>
120 </Fragment>
121
122 <!-- WiX OS-detection properties and custom action -->
123 <Fragment>
123 - <CustomAction Id="WixQueryOsInfo" BinaryKey="UtilCA" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
124 + <CustomAction Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
125
126 <InstallExecuteSequence>
126 - <Custom Action="WixQueryOsInfo" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
127 + <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
128 </InstallExecuteSequence>
129
130 <InstallUISequence>
130 - <Custom Action="WixQueryOsInfo" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
131 + <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
132 </InstallUISequence>
133 </Fragment>
134
135 <Fragment>
136 <Property Id="WIX_SUITE_BACKOFFICE" Secure="yes" />
136 - <CustomActionRef Id="WixQueryOsInfo" />
137 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
138 </Fragment>
139 <Fragment>
140 <Property Id="WIX_SUITE_BLADE" Secure="yes" />
140 - <CustomActionRef Id="WixQueryOsInfo" />
141 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
142 </Fragment>
143 <Fragment>
144 <Property Id="WIX_SUITE_COMMUNICATIONS" Secure="yes" />
144 - <CustomActionRef Id="WixQueryOsInfo" />
145 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
146 </Fragment>
147 <Fragment>
148 <Property Id="WIX_SUITE_COMPUTE_SERVER" Secure="yes" />
148 - <CustomActionRef Id="WixQueryOsInfo" />
149 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
150 </Fragment>
151 <Fragment>
152 <Property Id="WIX_SUITE_DATACENTER" Secure="yes" />
152 - <CustomActionRef Id="WixQueryOsInfo" />
153 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
154 </Fragment>
155 <Fragment>
156 <Property Id="WIX_SUITE_EMBEDDED_RESTRICTED" Secure="yes" />
156 - <CustomActionRef Id="WixQueryOsInfo" />
157 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
158 </Fragment>
159 <Fragment>
160 <Property Id="WIX_SUITE_EMBEDDEDNT" Secure="yes" />
160 - <CustomActionRef Id="WixQueryOsInfo" />
161 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
162 </Fragment>
163 <Fragment>
164 <Property Id="WIX_SUITE_ENTERPRISE" Secure="yes" />
164 - <CustomActionRef Id="WixQueryOsInfo" />
165 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
166 </Fragment>
167 <Fragment>
168 <Property Id="WIX_SUITE_MEDIACENTER" Secure="yes" />
168 - <CustomActionRef Id="WixQueryOsInfo" />
169 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
170 </Fragment>
171 <Fragment>
172 <Property Id="WIX_SUITE_PERSONAL" Secure="yes" />
172 - <CustomActionRef Id="WixQueryOsInfo" />
173 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
174 </Fragment>
175 <Fragment>
176 <Property Id="WIX_SUITE_SECURITY_APPLIANCE" Secure="yes" />
176 - <CustomActionRef Id="WixQueryOsInfo" />
177 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
178 </Fragment>
179 <Fragment>
180 <Property Id="WIX_SUITE_SERVERR2" Secure="yes" />
180 - <CustomActionRef Id="WixQueryOsInfo" />
181 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
182 </Fragment>
183 <Fragment>
184 <Property Id="WIX_SUITE_SINGLEUSERTS" Secure="yes" />
184 - <CustomActionRef Id="WixQueryOsInfo" />
185 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
186 </Fragment>
187 <Fragment>
188 <Property Id="WIX_SUITE_SMALLBUSINESS" Secure="yes" />
188 - <CustomActionRef Id="WixQueryOsInfo" />
189 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
190 </Fragment>
191 <Fragment>
192 <Property Id="WIX_SUITE_SMALLBUSINESS_RESTRICTED" Secure="yes" />
192 - <CustomActionRef Id="WixQueryOsInfo" />
193 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
194 </Fragment>
195 <Fragment>
196 <Property Id="WIX_SUITE_STARTER" Secure="yes" />
196 - <CustomActionRef Id="WixQueryOsInfo" />
197 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
198 </Fragment>
199 <Fragment>
200 <Property Id="WIX_SUITE_STORAGE_SERVER" Secure="yes" />
200 - <CustomActionRef Id="WixQueryOsInfo" />
201 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
202 </Fragment>
203 <Fragment>
204 <Property Id="WIX_SUITE_TABLETPC" Secure="yes" />
204 - <CustomActionRef Id="WixQueryOsInfo" />
205 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
206 </Fragment>
207 <Fragment>
208 <Property Id="WIX_SUITE_TERMINAL" Secure="yes" />
208 - <CustomActionRef Id="WixQueryOsInfo" />
209 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
210 </Fragment>
211 <Fragment>
212 <Property Id="WIX_SUITE_WH_SERVER" Secure="yes" />
212 - <CustomActionRef Id="WixQueryOsInfo" />
213 + <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
214 </Fragment>
215
216 <Fragment>
216 - <CustomAction Id="WixQueryOsDirs" BinaryKey="UtilCA" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" />
217 + <CustomAction Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" />
218
219 <InstallExecuteSequence>
219 - <Custom Action="WixQueryOsDirs" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
220 + <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
221 </InstallExecuteSequence>
222
223 <InstallUISequence>
223 - <Custom Action="WixQueryOsDirs" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
224 + <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
225 </InstallUISequence>
226 </Fragment>
227
228 <Fragment>
229 <Property Id="WIX_DIR_ADMINTOOLS" Secure="yes" />
229 - <CustomActionRef Id="WixQueryOsDirs" />
230 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
231 </Fragment>
232 <Fragment>
233 <Property Id="WIX_DIR_ALTSTARTUP" Secure="yes" />
233 - <CustomActionRef Id="WixQueryOsDirs" />
234 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
235 </Fragment>
236 <Fragment>
237 <Property Id="WIX_DIR_CDBURN_AREA" Secure="yes" />
237 - <CustomActionRef Id="WixQueryOsDirs" />
238 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
239 </Fragment>
240 <Fragment>
241 <Property Id="WIX_DIR_COMMON_ADMINTOOLS" Secure="yes" />
241 - <CustomActionRef Id="WixQueryOsDirs" />
242 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
243 </Fragment>
244 <Fragment>
245 <Property Id="WIX_DIR_COMMON_ALTSTARTUP" Secure="yes" />
245 - <CustomActionRef Id="WixQueryOsDirs" />
246 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
247 </Fragment>
248 <Fragment>
249 <Property Id="WIX_DIR_COMMON_DOCUMENTS" Secure="yes" />
249 - <CustomActionRef Id="WixQueryOsDirs" />
250 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
251 </Fragment>
252 <Fragment>
253 <Property Id="WIX_DIR_COMMON_FAVORITES" Secure="yes" />
253 - <CustomActionRef Id="WixQueryOsDirs" />
254 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
255 </Fragment>
256 <Fragment>
257 <Property Id="WIX_DIR_COMMON_MUSIC" Secure="yes" />
257 - <CustomActionRef Id="WixQueryOsDirs" />
258 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
259 </Fragment>
260 <Fragment>
261 <Property Id="WIX_DIR_COMMON_PICTURES" Secure="yes" />
261 - <CustomActionRef Id="WixQueryOsDirs" />
262 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
263 </Fragment>
264 <Fragment>
265 <Property Id="WIX_DIR_COMMON_VIDEO" Secure="yes" />
265 - <CustomActionRef Id="WixQueryOsDirs" />
266 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
267 </Fragment>
268 <Fragment>
269 <Property Id="WIX_DIR_COOKIES" Secure="yes" />
269 - <CustomActionRef Id="WixQueryOsDirs" />
270 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
271 </Fragment>
272 <Fragment>
273 <Property Id="WIX_DIR_DESKTOP" Secure="yes" />
273 - <CustomActionRef Id="WixQueryOsDirs" />
274 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
275 </Fragment>
276 <Fragment>
277 <Property Id="WIX_DIR_HISTORY" Secure="yes" />
277 - <CustomActionRef Id="WixQueryOsDirs" />
278 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
279 </Fragment>
280 <Fragment>
281 <Property Id="WIX_DIR_INTERNET_CACHE" Secure="yes" />
281 - <CustomActionRef Id="WixQueryOsDirs" />
282 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
283 </Fragment>
284 <Fragment>
285 <Property Id="WIX_DIR_MYMUSIC" Secure="yes" />
285 - <CustomActionRef Id="WixQueryOsDirs" />
286 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
287 </Fragment>
288 <Fragment>
289 <Property Id="WIX_DIR_MYPICTURES" Secure="yes" />
289 - <CustomActionRef Id="WixQueryOsDirs" />
290 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
291 </Fragment>
292 <Fragment>
293 <Property Id="WIX_DIR_MYVIDEO" Secure="yes" />
293 - <CustomActionRef Id="WixQueryOsDirs" />
294 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
295 </Fragment>
296 <Fragment>
297 <Property Id="WIX_DIR_NETHOOD" Secure="yes" />
297 - <CustomActionRef Id="WixQueryOsDirs" />
298 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
299 </Fragment>
300 <Fragment>
301 <Property Id="WIX_DIR_PERSONAL" Secure="yes" />
301 - <CustomActionRef Id="WixQueryOsDirs" />
302 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
303 </Fragment>
304 <Fragment>
305 <Property Id="WIX_DIR_PRINTHOOD" Secure="yes" />
305 - <CustomActionRef Id="WixQueryOsDirs" />
306 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
307 </Fragment>
308 <Fragment>
309 <Property Id="WIX_DIR_PROFILE" Secure="yes" />
309 - <CustomActionRef Id="WixQueryOsDirs" />
310 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
311 </Fragment>
312 <Fragment>
313 <Property Id="WIX_DIR_RECENT" Secure="yes" />
313 - <CustomActionRef Id="WixQueryOsDirs" />
314 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
315 </Fragment>
316 <Fragment>
317 <Property Id="WIX_DIR_RESOURCES" Secure="yes" />
317 - <CustomActionRef Id="WixQueryOsDirs" />
318 + <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
319 </Fragment>
320
321 <Fragment>
321 - <CustomAction Id="WixQueryOsWellKnownSID" BinaryKey="UtilCA" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" />
322 + <CustomAction Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" />
323
324 <InstallExecuteSequence>
324 - <Custom Action="WixQueryOsWellKnownSID" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
325 + <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
326 </InstallExecuteSequence>
327
328 <InstallUISequence>
328 - <Custom Action="WixQueryOsWellKnownSID" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
329 + <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
330 </InstallUISequence>
331 </Fragment>
332
333 <Fragment>
334 <Property Id="WIX_ACCOUNT_LOCALSYSTEM" Secure="yes" />
334 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
335 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
336 </Fragment>
337 <Fragment>
338 <Property Id="WIX_ACCOUNT_LOCALSERVICE" Secure="yes" />
338 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
339 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
340 </Fragment>
341 <Fragment>
342 <Property Id="WIX_ACCOUNT_NETWORKSERVICE" Secure="yes" />
342 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
343 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
344 </Fragment>
345 <Fragment>
346 <Property Id="WIX_ACCOUNT_ADMINISTRATORS" Secure="yes" />
346 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
347 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
348 </Fragment>
349 <Fragment>
350 <Property Id="WIX_ACCOUNT_USERS" Secure="yes" />
350 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
351 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
352 </Fragment>
353 <Fragment>
354 <Property Id="WIX_ACCOUNT_GUESTS" Secure="yes" />
354 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
355 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
356 </Fragment>
357 <Fragment>
358 <Property Id="WIX_ACCOUNT_PERFLOGUSERS" Secure="yes" />
359 <Property Id="WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN" Secure="yes" />
359 - <CustomActionRef Id="WixQueryOsWellKnownSID" />
360 + <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
361 </Fragment>
362
363 <Fragment>
363 - <CustomAction Id="WixQueryOsDriverInfo" BinaryKey="UtilCA" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
364 + <CustomAction Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
365
366 <InstallExecuteSequence>
366 - <Custom Action="WixQueryOsDriverInfo" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
367 + <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
368 </InstallExecuteSequence>
369
370 <InstallUISequence>
370 - <Custom Action="WixQueryOsDriverInfo" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
371 + <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)</Custom>
372 </InstallUISequence>
373 </Fragment>
374
375 <Fragment>
376 <Property Id="WIX_WDDM_DRIVER_PRESENT" Secure="yes" />
376 - <CustomActionRef Id="WixQueryOsDriverInfo" />
377 + <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" />
378 </Fragment>
379
380 <Fragment>
381 <Property Id="WIX_DWM_COMPOSITION_ENABLED" Secure="yes" />
381 - <CustomActionRef Id="WixQueryOsDriverInfo" />
382 + <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" />
383 </Fragment>
384
385 <!-- ShellExec custom actions (for when only one is needed; multiple executions need their own IDs) -->
386 <Fragment>
387 <PropertyRef Id="WixShellExecBinaryId" />
387 - <CustomAction Id="WixShellExecBinary" BinaryKey="UtilCA" DllEntry="WixShellExecBinary" Execute="immediate" Return="check" Impersonate="yes" />
388 + <CustomAction Id="$(var.Prefix)ShellExecBinary$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixShellExecBinary" Execute="immediate" Return="check" Impersonate="yes" />
389 </Fragment>
390
391 <Fragment>
392 <PropertyRef Id="WixShellExecTarget" />
392 - <CustomAction Id="WixShellExec" BinaryKey="UtilCA" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" />
393 + <CustomAction Id="$(var.Prefix)ShellExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixShellExec" Execute="immediate" Return="check" Impersonate="yes" />
394 </Fragment>
395
396 <Fragment>
397 <PropertyRef Id="WixUnelevatedShellExecTarget" />
397 - <CustomAction Id="WixUnelevatedShellExec" BinaryKey="UtilCA" DllEntry="WixUnelevatedShellExec" Execute="immediate" Return="check" Impersonate="yes" />
398 - </Fragment>
399 -
400 - <Fragment>
401 - <PropertyRef Id="QtExecCmdLine" />
402 - <CustomAction Id="QtExec" BinaryKey="UtilCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" Impersonate="yes" />
403 - </Fragment>
404 -
405 - <Fragment>
406 - <PropertyRef Id="QtExec64CmdLine" />
407 - <CustomAction Id="QtExec64" BinaryKey="UtilCA" DllEntry="CAQuietExec64" Execute="immediate" Return="check" Impersonate="yes" />
398 + <CustomAction Id="$(var.Prefix)UnelevatedShellExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixUnelevatedShellExec" Execute="immediate" Return="check" Impersonate="yes" />
399 </Fragment>
400
401 <Fragment>
402 <PropertyRef Id="WixQuietExecCmdLine" />
412 - <CustomAction Id="WixQuietExec" BinaryKey="UtilCA" DllEntry="WixQuietExec" Execute="immediate" Return="check" Impersonate="yes" />
403 + <CustomAction Id="$(var.Prefix)QuietExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQuietExec" Execute="immediate" Return="check" Impersonate="yes" />
404 </Fragment>
405
406 <Fragment>
407 <PropertyRef Id="WixQuietExec64CmdLine" />
417 - <CustomAction Id="WixQuietExec64" BinaryKey="UtilCA" DllEntry="WixQuietExec64" Execute="immediate" Return="check" Impersonate="yes" />
408 + <CustomAction Id="$(var.Prefix)QuietExec64$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQuietExec64" Execute="immediate" Return="check" Impersonate="yes" />
409 </Fragment>
410
411 <!-- SilentExec custom actions differ from QtExec in that they do not log the commandline or output of the exe -->
412 <Fragment>
413 <PropertyRef Id="WixSilentExecCmdLine" />
423 - <CustomAction Id="WixSilentExec" BinaryKey="UtilCA" DllEntry="WixSilentExec" Execute="immediate" Return="check" Impersonate="yes" />
414 + <CustomAction Id="$(var.Prefix)SilentExec$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSilentExec" Execute="immediate" Return="check" Impersonate="yes" />
415 </Fragment>
416
417 <Fragment>
418 <PropertyRef Id="WixSilentExec64CmdLine" />
428 - <CustomAction Id="WixSilentExec64" BinaryKey="UtilCA" DllEntry="WixSilentExec64" Execute="immediate" Return="check" Impersonate="yes" />
419 + <CustomAction Id="$(var.Prefix)SilentExec64$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSilentExec64" Execute="immediate" Return="check" Impersonate="yes" />
420 </Fragment>
421 </Wix>
src/wixlib/UtilExtension_Platform.wxi
+89 -90
@@ -3,8 +3,7 @@
3
4
5 <Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
6 -
7 - <?include caSuffix.wxi ?>
6 + <?include caDecor.wxi ?>
7
8 <!--
9 The following actions do not support X64.
@@ -12,178 +11,178 @@
11 <?if $(var.platform)!=x64 ?>
12
13 <Fragment>
15 - <CustomAction Id="WixCheckRebootRequired$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCheckRebootRequired" Execute="immediate" Return="ignore" SuppressModularization="yes" />
14 + <CustomAction Id="$(var.Prefix)CheckRebootRequired$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCheckRebootRequired" Execute="immediate" Return="ignore" SuppressModularization="yes" />
15
16 <InstallExecuteSequence>
17 <!-- Condition this so it runs on install and MMode, but not uninstall -->
19 - <Custom Action="WixCheckRebootRequired$(var.Suffix)" After="InstallFinalize" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
18 + <Custom Action="$(var.Prefix)CheckRebootRequired$(var.Suffix)" After="InstallFinalize" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
19 </InstallExecuteSequence>
20 </Fragment>
21
22 <Fragment>
24 - <CustomAction Id="WixCloseApplications$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCloseApplications" Execute="immediate" Return="check" SuppressModularization="yes" />
25 - <CustomAction Id="WixCloseApplicationsDeferred$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCloseApplicationsDeferred" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
26 - <CustomActionRef Id="WixCheckRebootRequired$(var.Suffix)" />
23 + <CustomAction Id="$(var.Prefix)CloseApplications$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCloseApplications" Execute="immediate" Return="check" SuppressModularization="yes" />
24 + <CustomAction Id="$(var.Prefix)CloseApplicationsDeferred$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCloseApplicationsDeferred" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
25 + <CustomActionRef Id="$(var.Prefix)CheckRebootRequired$(var.Suffix)" />
26
27 <InstallExecuteSequence>
29 - <Custom Action="WixCloseApplications$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
28 + <Custom Action="$(var.Prefix)CloseApplications$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
29 </InstallExecuteSequence>
30 </Fragment>
31
32 <Fragment>
34 - <CustomAction Id="WixRegisterRestartResources$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixRegisterRestartResources$(var.Suffix)" Execute="immediate" Return="check" SuppressModularization="yes" />
33 + <CustomAction Id="$(var.Prefix)RegisterRestartResources$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRegisterRestartResources$(var.Suffix)" Execute="immediate" Return="check" SuppressModularization="yes" />
34
35 <InstallExecuteSequence>
37 - <Custom Action="WixRegisterRestartResources$(var.Suffix)" Before="InstallValidate" Overridable="yes" />
36 + <Custom Action="$(var.Prefix)RegisterRestartResources$(var.Suffix)" Before="InstallValidate" Overridable="yes" />
37 </InstallExecuteSequence>
38 </Fragment>
39
40 <Fragment>
41 <UIRef Id="ConfigureUsersErrorText" />
42
44 - <CustomAction Id="ConfigureUsers$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureUsers" Execute="immediate" Return="check" SuppressModularization="yes" />
45 - <CustomAction Id="CreateUser$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateUser" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
46 - <CustomAction Id="CreateUserRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
43 + <CustomAction Id="$(var.Prefix)ConfigureUsers$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureUsers" Execute="immediate" Return="check" SuppressModularization="yes" />
44 + <CustomAction Id="$(var.Prefix)CreateUser$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateUser" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
45 + <CustomAction Id="$(var.Prefix)CreateUserRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
46 <!-- RemoveUser is a type commit action because it is not possible to rollback the removal of a user -->
48 - <CustomAction Id="RemoveUser$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="commit" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
47 + <CustomAction Id="$(var.Prefix)RemoveUser$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RemoveUser" Impersonate="no" Execute="commit" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
48
49 <InstallExecuteSequence>
51 - <Custom Action="ConfigureUsers$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
50 + <Custom Action="$(var.Prefix)ConfigureUsers$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
51 </InstallExecuteSequence>
52 </Fragment>
53
54 <Fragment>
55 <UIRef Id="ConfigureSmbErrorsText" />
56
58 - <CustomAction Id="ConfigureSmbInstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureSmbInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
59 - <CustomAction Id="ConfigureSmbUninstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureSmbUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
60 - <CustomAction Id="CreateSmb$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
61 - <CustomAction Id="CreateSmbRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
62 - <CustomAction Id="DropSmb$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
63 - <CustomAction Id="DropSmbRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
57 + <CustomAction Id="$(var.Prefix)ConfigureSmbInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureSmbInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
58 + <CustomAction Id="$(var.Prefix)ConfigureSmbUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureSmbUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
59 + <CustomAction Id="$(var.Prefix)CreateSmb$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
60 + <CustomAction Id="$(var.Prefix)CreateSmbRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
61 + <CustomAction Id="$(var.Prefix)DropSmb$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="DropSmb" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
62 + <CustomAction Id="$(var.Prefix)DropSmbRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CreateSmb" Impersonate="no" Execute="rollback" Return="ignore" HideTarget="yes" SuppressModularization="yes" />
63
64 <InstallExecuteSequence>
66 - <Custom Action="ConfigureSmbInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
67 - <Custom Action="ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT &gt; 400</Custom>
65 + <Custom Action="$(var.Prefix)ConfigureSmbInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
66 + <Custom Action="$(var.Prefix)ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT &gt; 400</Custom>
67 </InstallExecuteSequence>
68 </Fragment>
69
70 <Fragment>
71 <UIRef Id="PerCounterDataErrorsText" />
72
74 - <CustomAction Id="InstallPerfCounterData$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="InstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" />
75 - <CustomAction Id="UninstallPerfCounterData$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UninstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" />
76 - <CustomAction Id="RegisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
77 - <CustomAction Id="UnregisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
78 - <CustomAction Id="RollbackRegisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
79 - <CustomAction Id="RollbackUnregisterPerfCounterData$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
73 + <CustomAction Id="$(var.Prefix)InstallPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="InstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" />
74 + <CustomAction Id="$(var.Prefix)UninstallPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UninstallPerfCounterData" Execute="immediate" Return="check" SuppressModularization="yes" />
75 + <CustomAction Id="$(var.Prefix)RegisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
76 + <CustomAction Id="$(var.Prefix)UnregisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="deferred" Return="check" HideTarget="yes" SuppressModularization="yes" />
77 + <CustomAction Id="$(var.Prefix)RollbackRegisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
78 + <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfCounterData$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfCounterData" Impersonate="no" Execute="rollback" Return="check" HideTarget="yes" SuppressModularization="yes" />
79
80 <InstallExecuteSequence>
82 - <Custom Action="InstallPerfCounterData$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
83 - <Custom Action="UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
81 + <Custom Action="$(var.Prefix)InstallPerfCounterData$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
82 + <Custom Action="$(var.Prefix)UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
83 </InstallExecuteSequence>
84 </Fragment>
85
86 <Fragment>
87 <UIRef Id="ConfigurePerfmonErrorsText" />
88
90 - <CustomAction Id="ConfigurePerfmonInstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
91 - <CustomAction Id="ConfigurePerfmonUninstall$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
92 - <CustomAction Id="RegisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
93 - <CustomAction Id="UnregisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
94 - <CustomAction Id="RollbackRegisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
95 - <CustomAction Id="RollbackUnregisterPerfmon$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
89 + <CustomAction Id="$(var.Prefix)ConfigurePerfmonInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
90 + <CustomAction Id="$(var.Prefix)ConfigurePerfmonUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
91 + <CustomAction Id="$(var.Prefix)RegisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
92 + <CustomAction Id="$(var.Prefix)UnregisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
93 + <CustomAction Id="$(var.Prefix)RollbackRegisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="UnregisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
94 + <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfmon$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RegisterPerfmon" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
95
96 <InstallExecuteSequence>
98 - <Custom Action="ConfigurePerfmonInstall$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
99 - <Custom Action="ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
97 + <Custom Action="$(var.Prefix)ConfigurePerfmonInstall$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
98 + <Custom Action="$(var.Prefix)ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
99 </InstallExecuteSequence>
100 </Fragment>
101
102 <Fragment>
104 - <CustomAction Id="ConfigurePerfmonManifestRegister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" />
105 - <CustomAction Id="ConfigurePerfmonManifestUnregister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" />
106 - <CustomAction Id="RegisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
107 - <CustomAction Id="UnregisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" />
108 - <CustomAction Id="RollbackRegisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" />
109 - <CustomAction Id="RollbackUnregisterPerfmonManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
103 + <CustomAction Id="$(var.Prefix)ConfigurePerfmonManifestRegister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" />
104 + <CustomAction Id="$(var.Prefix)ConfigurePerfmonManifestUnregister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigurePerfmonManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" />
105 + <CustomAction Id="$(var.Prefix)RegisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
106 + <CustomAction Id="$(var.Prefix)UnregisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" />
107 + <CustomAction Id="$(var.Prefix)RollbackRegisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" />
108 + <CustomAction Id="$(var.Prefix)RollbackUnregisterPerfmonManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
109
110 <InstallExecuteSequence>
112 - <Custom Action="ConfigurePerfmonManifestRegister$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
113 - <Custom Action="ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
111 + <Custom Action="$(var.Prefix)ConfigurePerfmonManifestRegister$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT &gt; 400</Custom>
112 + <Custom Action="$(var.Prefix)ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
113 </InstallExecuteSequence>
114 </Fragment>
115
116 <Fragment>
118 - <CustomAction Id="ConfigureEventManifestRegister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" />
119 - <CustomAction Id="ConfigureEventManifestUnregister$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" />
120 - <CustomAction Id="RegisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
121 - <CustomAction Id="UnregisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" />
122 - <CustomAction Id="RollbackRegisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" />
123 - <CustomAction Id="RollbackUnregisterEventManifest$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
117 + <CustomAction Id="$(var.Prefix)ConfigureEventManifestRegister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestRegister" Execute="immediate" Return="check" SuppressModularization="yes" />
118 + <CustomAction Id="$(var.Prefix)ConfigureEventManifestUnregister$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ConfigureEventManifestUnregister" Execute="immediate" Return="check" SuppressModularization="yes" />
119 + <CustomAction Id="$(var.Prefix)RegisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
120 + <CustomAction Id="$(var.Prefix)UnregisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="deferred" Return="ignore" SuppressModularization="yes" />
121 + <CustomAction Id="$(var.Prefix)RollbackRegisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="ignore" SuppressModularization="yes" />
122 + <CustomAction Id="$(var.Prefix)RollbackUnregisterEventManifest$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="CAQuietExec" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
123
124 <InstallExecuteSequence>
126 - <Custom Action="ConfigureEventManifestRegister$(var.Suffix)" After="SchedXmlFile" Overridable="yes">VersionNT &gt; 400</Custom>
127 - <Custom Action="ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
125 + <Custom Action="$(var.Prefix)ConfigureEventManifestRegister$(var.Suffix)" After="$(var.Prefix)SchedXmlFile$(var.Suffix)" Overridable="yes">VersionNT &gt; 400</Custom>
126 + <Custom Action="$(var.Prefix)ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT &gt; 400</Custom>
127 </InstallExecuteSequence>
128 </Fragment>
129
130 <Fragment>
132 - <CustomAction Id="SchedServiceConfig$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedServiceConfig" Execute="immediate" Return="check" SuppressModularization="yes" />
133 - <CustomAction Id="ExecServiceConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecServiceConfig" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
134 - <CustomAction Id="RollbackServiceConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="RollbackServiceConfig" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
131 + <CustomAction Id="$(var.Prefix)SchedServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedServiceConfig" Execute="immediate" Return="check" SuppressModularization="yes" />
132 + <CustomAction Id="$(var.Prefix)ExecServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecServiceConfig" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
133 + <CustomAction Id="$(var.Prefix)RollbackServiceConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="RollbackServiceConfig" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
134
135 <InstallExecuteSequence>
136 <!-- Condition this so it runs on install and MMode, but not uninstall -->
138 - <Custom Action="SchedServiceConfig$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
137 + <Custom Action="$(var.Prefix)SchedServiceConfig$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
138 </InstallExecuteSequence>
139 </Fragment>
140
141 <Fragment>
143 - <CustomAction Id="WixTouchFileDuringInstall" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
144 - <CustomAction Id="WixTouchFileDuringUninstall" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
145 - <CustomAction Id="WixExecuteTouchFile" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
146 - <CustomAction Id="WixRollbackTouchFile" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
142 + <CustomAction Id="$(var.Prefix)TouchFileDuringInstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringInstall" Execute="immediate" Return="check" SuppressModularization="yes" />
143 + <CustomAction Id="$(var.Prefix)TouchFileDuringUninstall$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixTouchFileDuringUninstall" Execute="immediate" Return="check" SuppressModularization="yes" />
144 + <CustomAction Id="$(var.Prefix)ExecuteTouchFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
145 + <CustomAction Id="$(var.Prefix)RollbackTouchFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecuteTouchFile" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
146
147 <InstallExecuteSequence>
149 - <Custom Action="WixTouchFileDuringUninstall" Before="RemoveFiles" Overridable="yes" />
150 - <Custom Action="WixTouchFileDuringInstall" After="InstallFiles" Overridable="yes" />
148 + <Custom Action="$(var.Prefix)TouchFileDuringUninstall" Before="RemoveFiles" Overridable="yes" />
149 + <Custom Action="$(var.Prefix)TouchFileDuringInstall" After="InstallFiles" Overridable="yes" />
150 </InstallExecuteSequence>
151 </Fragment>
152
153 <Fragment>
154 <UIRef Id="XmlFileErrorsText" />
155
157 - <CustomAction Id="SchedXmlFile$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedXmlFile" Execute="immediate" Return="check" SuppressModularization="yes" />
158 - <CustomAction Id="ExecXmlFile$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlFile" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
159 - <CustomAction Id="ExecXmlFileRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlFileRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
156 + <CustomAction Id="$(var.Prefix)SchedXmlFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedXmlFile" Execute="immediate" Return="check" SuppressModularization="yes" />
157 + <CustomAction Id="$(var.Prefix)ExecXmlFile$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlFile" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
158 + <CustomAction Id="$(var.Prefix)ExecXmlFileRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlFileRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
159
160 <InstallExecuteSequence>
162 - <Custom Action="SchedXmlFile$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT &gt; 400</Custom>
161 + <Custom Action="$(var.Prefix)SchedXmlFile$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT &gt; 400</Custom>
162 </InstallExecuteSequence>
163 </Fragment>
164
165 <Fragment>
166 <UIRef Id="XmlConfigErrorsText" />
167
169 - <CustomAction Id="SchedXmlConfig$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedXmlConfig" Execute="immediate" Return="check" SuppressModularization="yes" />
170 - <CustomAction Id="ExecXmlConfig$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlConfig" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
171 - <CustomAction Id="ExecXmlConfigRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecXmlConfigRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
168 + <CustomAction Id="$(var.Prefix)SchedXmlConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedXmlConfig" Execute="immediate" Return="check" SuppressModularization="yes" />
169 + <CustomAction Id="$(var.Prefix)ExecXmlConfig$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlConfig" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
170 + <CustomAction Id="$(var.Prefix)ExecXmlConfigRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecXmlConfigRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
171
172 <InstallExecuteSequence>
174 - <Custom Action="SchedXmlConfig$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT &gt; 400</Custom>
173 + <Custom Action="$(var.Prefix)SchedXmlConfig$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT &gt; 400</Custom>
174 </InstallExecuteSequence>
175 </Fragment>
176
177 <Fragment>
179 - <CustomAction Id="WixSchedInternetShortcuts$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixSchedInternetShortcuts" Execute="immediate" Return="check" SuppressModularization="yes" />
180 - <CustomAction Id="WixRollbackInternetShortcuts$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixRollbackInternetShortcuts" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
181 - <CustomAction Id="WixCreateInternetShortcuts$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixCreateInternetShortcuts" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
178 + <CustomAction Id="$(var.Prefix)SchedInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSchedInternetShortcuts" Execute="immediate" Return="check" SuppressModularization="yes" />
179 + <CustomAction Id="$(var.Prefix)RollbackInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixRollbackInternetShortcuts" Impersonate="no" Execute="rollback" Return="check" SuppressModularization="yes" />
180 + <CustomAction Id="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixCreateInternetShortcuts" Impersonate="no" Execute="deferred" Return="check" SuppressModularization="yes" />
181
182 <InstallExecuteSequence>
184 - <Custom Action="WixSchedInternetShortcuts$(var.Suffix)" Before="RemoveFolders" Overridable="yes">VersionNT &gt; 400</Custom>
185 - <Custom Action="WixRollbackInternetShortcuts$(var.DeferredSuffix)" Before="WixCreateInternetShortcuts$(var.DeferredSuffix)" Overridable="yes">VersionNT &gt; 400</Custom>
186 - <Custom Action="WixCreateInternetShortcuts$(var.DeferredSuffix)" After="CreateShortcuts" Overridable="yes">VersionNT &gt; 400</Custom>
183 + <Custom Action="$(var.Prefix)SchedInternetShortcuts$(var.Suffix)" Before="RemoveFolders" Overridable="yes">VersionNT &gt; 400</Custom>
184 + <Custom Action="$(var.Prefix)RollbackInternetShortcuts$(var.Suffix)" Before="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" Overridable="yes">VersionNT &gt; 400</Custom>
185 + <Custom Action="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" After="CreateShortcuts" Overridable="yes">VersionNT &gt; 400</Custom>
186 </InstallExecuteSequence>
187 </Fragment>
188
@@ -196,29 +195,29 @@
195 <Fragment>
196 <UIRef Id="SecureObjectsErrors" />
197
199 - <CustomAction Id="SchedSecureObjects$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedSecureObjects" Execute="immediate" Return="check" SuppressModularization="yes" />
200 - <CustomAction Id="SchedSecureObjectsRollback$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="SchedSecureObjectsRollback" Execute="immediate" Return="check" SuppressModularization="yes" />
201 - <CustomAction Id="ExecSecureObjects$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecSecureObjects" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
202 - <CustomAction Id="ExecSecureObjectsRollback$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="ExecSecureObjectsRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
198 + <CustomAction Id="$(var.Prefix)SchedSecureObjects$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedSecureObjects" Execute="immediate" Return="check" SuppressModularization="yes" />
199 + <CustomAction Id="$(var.Prefix)SchedSecureObjectsRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="SchedSecureObjectsRollback" Execute="immediate" Return="check" SuppressModularization="yes" />
200 + <CustomAction Id="$(var.Prefix)ExecSecureObjects$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecSecureObjects" Execute="deferred" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
201 + <CustomAction Id="$(var.Prefix)ExecSecureObjectsRollback$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="ExecSecureObjectsRollback" Execute="rollback" Impersonate="no" Return="check" HideTarget="yes" SuppressModularization="yes" />
202
203 <InstallExecuteSequence>
204 <!-- Condition this so it runs on install and MMode, but not uninstall -->
206 - <Custom Action="SchedSecureObjects$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
207 - <Custom Action="SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT &gt; 400</Custom>
205 + <Custom Action="$(var.Prefix)SchedSecureObjects$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT &gt; 400</Custom>
206 + <Custom Action="$(var.Prefix)SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT &gt; 400</Custom>
207 </InstallExecuteSequence>
208 </Fragment>
209
210 <Fragment>
212 - <CustomAction Id="WixSchedFormatFiles$(var.Suffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixSchedFormatFiles" Execute="immediate" Return="check" SuppressModularization="yes" />
213 - <CustomAction Id="WixExecFormatFiles$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
214 - <CustomAction Id="WixRollbackFormatFiles$(var.DeferredSuffix)" BinaryKey="UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
211 + <CustomAction Id="$(var.Prefix)SchedFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixSchedFormatFiles" Execute="immediate" Return="check" SuppressModularization="yes" />
212 + <CustomAction Id="$(var.Prefix)ExecFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="deferred" Impersonate="no" Return="check" SuppressModularization="yes" />
213 + <CustomAction Id="$(var.Prefix)RollbackFormatFiles$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixExecFormatFiles" Execute="rollback" Impersonate="no" Return="check" SuppressModularization="yes" />
214
215 <InstallExecuteSequence>
217 - <Custom Action="WixSchedFormatFiles$(var.Suffix)" After="InstallFiles" />
216 + <Custom Action="$(var.Prefix)SchedFormatFiles$(var.Suffix)" After="InstallFiles" />
217 </InstallExecuteSequence>
218 </Fragment>
219
220 <Fragment>
222 - <Binary Id="UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" />
221 + <Binary Id="$(var.Prefix)UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" />
222 </Fragment>
223 </Include>
src/wixlib/caDecor.wxi new
+40
@@ -0,0 +1,40 @@
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<!-- 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. -->
3 +
4 +
5 +<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
6 + <?ifdef Prefix ?>
7 + <?undef Prefix ?>
8 + <?endif ?>
9 +
10 + <?define Prefix="Wix4" ?>
11 +
12 + <?ifndef platform ?>
13 + <?define platform="x86" ?>
14 + <?endif ?>
15 +
16 + <?if $(var.platform)="" ?>
17 + <?undef platform ?>
18 + <?define platform="x86" ?>
19 + <?endif ?>
20 +
21 + <?ifdef Suffix ?>
22 + <?undef Suffix ?>
23 + <?endif ?>
24 +
25 + <?if $(var.platform)~="x86" ?>
26 + <?define Suffix="_X86" ?>
27 + <?endif ?>
28 +
29 + <?if $(var.platform)~="x64" ?>
30 + <?define Suffix="_X64" ?>
31 + <?endif ?>
32 +
33 + <?if $(var.platform)~="arm" ?>
34 + <?define Suffix="_A32" ?>
35 + <?endif ?>
36 +
37 + <?if $(var.platform)~="arm64" ?>
38 + <?define Suffix="_A64" ?>
39 + <?endif ?>
40 +</Include>
src/wixlib/caSuffix.wxi deleted
-28
@@ -1,28 +0,0 @@
1 -<?xml version="1.0" encoding="utf-8"?>
2 -<!-- 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. -->
3 -
4 -<Include xmlns="http://wixtoolset.org/schemas/v4/wxs">
5 - <?ifndef platform ?>
6 - <?error Required value "platform" not defined in include caSuffix.wxi ?>
7 - <?endif ?>
8 -
9 - <?ifdef Suffix ?>
10 - <?undef Suffix ?>
11 - <?undef DeferredSuffix ?>
12 - <?endif ?>
13 -
14 - <?if $(var.platform)="x86" ?>
15 - <?define Suffix="" ?>
16 - <?define DeferredSuffix="" ?>
17 - <?endif ?>
18 -
19 - <?if $(var.platform)="x64" ?>
20 - <?define Suffix="_x64" ?>
21 - <?define DeferredSuffix="_64" ?>
22 - <?endif ?>
23 -
24 - <?if $(var.platform)="arm" ?>
25 - <?define Suffix="_ARM" ?>
26 - <?define DeferredSuffix="_ARM" ?>
27 - <?endif ?>
28 -</Include>
src/wixlib/util.wixproj
+1 -1
@@ -33,7 +33,7 @@
33 </ItemGroup>
34 <ItemGroup>
35 <None Include="caerr.wxi" />
36 - <None Include="caSuffix.wxi" />
36 + <None Include="caDecor.wxi" />
37 <None Include="UtilExtension_Platform.wxi" />
38 </ItemGroup>
39 <Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' AND Exists('$(WixTargetsPath)') " />