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 > 400</Custom>
70
+ <Custom Action="$(var.Prefix)FailWhenDeferred$(var.Suffix)" Before="InstallFinalize" Overridable="yes">WIXFAILWHENDEFERRED=1 AND VersionNT > 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 > 400</Custom>
94
+ <Custom Action="$(var.Prefix)ExitEarlyWithSuccess$(var.Suffix)" After="FindRelatedProducts" Overridable="yes">NEWERVERSIONDETECTED AND VersionNT > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
127
+ <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
128
</InstallExecuteSequence>
129
130
<InstallUISequence>
130
- <Custom Action="WixQueryOsInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
131
+ <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
220
+ <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
221
</InstallExecuteSequence>
222
223
<InstallUISequence>
223
- <Custom Action="WixQueryOsDirs" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
224
+ <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
325
+ <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
326
</InstallExecuteSequence>
327
328
<InstallUISequence>
328
- <Custom Action="WixQueryOsWellKnownSID" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
329
+ <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
367
+ <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
368
</InstallExecuteSequence>
369
370
<InstallUISequence>
370
- <Custom Action="WixQueryOsDriverInfo" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)</Custom>
371
+ <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes">VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400</Custom>
18
+ <Custom Action="$(var.Prefix)CheckRebootRequired$(var.Suffix)" After="InstallFinalize" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 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 > 400</Custom>
28
+ <Custom Action="$(var.Prefix)CloseApplications$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 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 > 400</Custom>
50
+ <Custom Action="$(var.Prefix)ConfigureUsers$(var.Suffix)" Before="InstallFiles" Overridable="yes">VersionNT > 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 > 400</Custom>
67
- <Custom Action="ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT > 400</Custom>
65
+ <Custom Action="$(var.Prefix)ConfigureSmbInstall$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom>
66
+ <Custom Action="$(var.Prefix)ConfigureSmbUninstall$(var.Suffix)" After="RemoveFiles" Overridable="yes">VersionNT > 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 > 400</Custom>
83
- <Custom Action="UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom>
81
+ <Custom Action="$(var.Prefix)InstallPerfCounterData$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom>
82
+ <Custom Action="$(var.Prefix)UninstallPerfCounterData$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 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 > 400</Custom>
99
- <Custom Action="ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom>
97
+ <Custom Action="$(var.Prefix)ConfigurePerfmonInstall$(var.Suffix)" After="WriteRegistryValues" Overridable="yes">VersionNT > 400</Custom>
98
+ <Custom Action="$(var.Prefix)ConfigurePerfmonUninstall$(var.Suffix)" Before="RemoveRegistryValues" Overridable="yes">VersionNT > 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 > 400</Custom>
113
- <Custom Action="ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom>
111
+ <Custom Action="$(var.Prefix)ConfigurePerfmonManifestRegister$(var.Suffix)" After="InstallFiles" Overridable="yes">VersionNT > 400</Custom>
112
+ <Custom Action="$(var.Prefix)ConfigurePerfmonManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 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 > 400</Custom>
127
- <Custom Action="ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 400</Custom>
125
+ <Custom Action="$(var.Prefix)ConfigureEventManifestRegister$(var.Suffix)" After="$(var.Prefix)SchedXmlFile$(var.Suffix)" Overridable="yes">VersionNT > 400</Custom>
126
+ <Custom Action="$(var.Prefix)ConfigureEventManifestUnregister$(var.Suffix)" After="RemoveRegistryValues" Overridable="yes">VersionNT > 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 > 400</Custom>
137
+ <Custom Action="$(var.Prefix)SchedServiceConfig$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 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 > 400</Custom>
161
+ <Custom Action="$(var.Prefix)SchedXmlFile$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 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 > 400</Custom>
173
+ <Custom Action="$(var.Prefix)SchedXmlConfig$(var.Suffix)" After="DuplicateFiles" Overridable="yes">VersionNT > 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 > 400</Custom>
185
- <Custom Action="WixRollbackInternetShortcuts$(var.DeferredSuffix)" Before="WixCreateInternetShortcuts$(var.DeferredSuffix)" Overridable="yes">VersionNT > 400</Custom>
186
- <Custom Action="WixCreateInternetShortcuts$(var.DeferredSuffix)" After="CreateShortcuts" Overridable="yes">VersionNT > 400</Custom>
183
+ <Custom Action="$(var.Prefix)SchedInternetShortcuts$(var.Suffix)" Before="RemoveFolders" Overridable="yes">VersionNT > 400</Custom>
184
+ <Custom Action="$(var.Prefix)RollbackInternetShortcuts$(var.Suffix)" Before="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" Overridable="yes">VersionNT > 400</Custom>
185
+ <Custom Action="$(var.Prefix)CreateInternetShortcuts$(var.Suffix)" After="CreateShortcuts" Overridable="yes">VersionNT > 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 > 400</Custom>
207
- <Custom Action="SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT > 400</Custom>
205
+ <Custom Action="$(var.Prefix)SchedSecureObjects$(var.Suffix)" After="InstallServices" Overridable="yes">NOT REMOVE~="ALL" AND VersionNT > 400</Custom>
206
+ <Custom Action="$(var.Prefix)SchedSecureObjectsRollback$(var.Suffix)" After="UnpublishFeatures" Overridable="yes">VersionNT > 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)') " />