diff options
Diffstat (limited to 'src/WixToolset.Core/Compiler_2.cs')
-rw-r--r-- | src/WixToolset.Core/Compiler_2.cs | 288 |
1 files changed, 113 insertions, 175 deletions
diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs index 89d4b6da..d7cb36bc 100644 --- a/src/WixToolset.Core/Compiler_2.cs +++ b/src/WixToolset.Core/Compiler_2.cs | |||
@@ -193,7 +193,7 @@ namespace WixToolset.Core | |||
193 | this.ParseCustomActionElement(child); | 193 | this.ParseCustomActionElement(child); |
194 | break; | 194 | break; |
195 | case "CustomActionRef": | 195 | case "CustomActionRef": |
196 | this.ParseSimpleRefElement(child, "CustomAction"); | 196 | this.ParseSimpleRefElement(child, TupleDefinitions.CustomAction); |
197 | break; | 197 | break; |
198 | case "CustomTable": | 198 | case "CustomTable": |
199 | this.ParseCustomTableElement(child); | 199 | this.ParseCustomTableElement(child); |
@@ -208,7 +208,7 @@ namespace WixToolset.Core | |||
208 | this.ParseEmbeddedChainerElement(child); | 208 | this.ParseEmbeddedChainerElement(child); |
209 | break; | 209 | break; |
210 | case "EmbeddedChainerRef": | 210 | case "EmbeddedChainerRef": |
211 | this.ParseSimpleRefElement(child, "MsiEmbeddedChainer"); | 211 | this.ParseSimpleRefElement(child, TupleDefinitions.MsiEmbeddedChainer); |
212 | break; | 212 | break; |
213 | case "EnsureTable": | 213 | case "EnsureTable": |
214 | this.ParseEnsureTableElement(child); | 214 | this.ParseEnsureTableElement(child); |
@@ -248,7 +248,7 @@ namespace WixToolset.Core | |||
248 | this.ParsePropertyElement(child); | 248 | this.ParsePropertyElement(child); |
249 | break; | 249 | break; |
250 | case "PropertyRef": | 250 | case "PropertyRef": |
251 | this.ParseSimpleRefElement(child, "Property"); | 251 | this.ParseSimpleRefElement(child, TupleDefinitions.Property); |
252 | break; | 252 | break; |
253 | case "SetDirectory": | 253 | case "SetDirectory": |
254 | this.ParseSetDirectoryElement(child); | 254 | this.ParseSetDirectoryElement(child); |
@@ -274,7 +274,7 @@ namespace WixToolset.Core | |||
274 | this.ParseUIElement(child); | 274 | this.ParseUIElement(child); |
275 | break; | 275 | break; |
276 | case "UIRef": | 276 | case "UIRef": |
277 | this.ParseSimpleRefElement(child, "WixUI"); | 277 | this.ParseSimpleRefElement(child, TupleDefinitions.WixUI); |
278 | break; | 278 | break; |
279 | case "Upgrade": | 279 | case "Upgrade": |
280 | this.ParseUpgradeElement(child); | 280 | this.ParseUpgradeElement(child); |
@@ -297,14 +297,12 @@ namespace WixToolset.Core | |||
297 | { | 297 | { |
298 | if (null != symbols) | 298 | if (null != symbols) |
299 | { | 299 | { |
300 | var tuple = new WixDeltaPatchSymbolPathsTuple(sourceLineNumbers) | 300 | this.Core.AddTuple(new WixDeltaPatchSymbolPathsTuple(sourceLineNumbers) |
301 | { | 301 | { |
302 | SymbolId = productCode, | 302 | SymbolId = productCode, |
303 | SymbolType = SymbolPathType.Product, | 303 | SymbolType = SymbolPathType.Product, |
304 | SymbolPaths = symbols | 304 | SymbolPaths = symbols, |
305 | }; | 305 | }); |
306 | |||
307 | this.Core.AddTuple(tuple); | ||
308 | } | 306 | } |
309 | } | 307 | } |
310 | } | 308 | } |
@@ -340,14 +338,14 @@ namespace WixToolset.Core | |||
340 | break; | 338 | break; |
341 | case "File": | 339 | case "File": |
342 | driver = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 340 | driver = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
343 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", driver); | 341 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, driver); |
344 | break; | 342 | break; |
345 | case "Name": | 343 | case "Name": |
346 | name = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 344 | name = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
347 | break; | 345 | break; |
348 | case "SetupFile": | 346 | case "SetupFile": |
349 | setup = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 347 | setup = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
350 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", setup); | 348 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, setup); |
351 | break; | 349 | break; |
352 | default: | 350 | default: |
353 | this.Core.UnexpectedAttribute(node, attrib); | 351 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -405,11 +403,29 @@ namespace WixToolset.Core | |||
405 | 403 | ||
406 | if (!this.Core.EncounteredError) | 404 | if (!this.Core.EncounteredError) |
407 | { | 405 | { |
408 | var tuple = this.Core.CreateTuple(sourceLineNumbers, tupleDefinitionType, id); | 406 | switch (tupleDefinitionType) |
409 | tuple.Set(1, componentId); | 407 | { |
410 | tuple.Set(2, name); | 408 | case TupleDefinitionType.ODBCDriver: |
411 | tuple.Set(3, driver); | 409 | this.Core.AddTuple(new ODBCDriverTuple(sourceLineNumbers, id) |
412 | tuple.Set(4, setup); | 410 | { |
411 | ComponentRef = componentId, | ||
412 | Description = name, | ||
413 | FileRef = driver, | ||
414 | SetupFileRef = setup, | ||
415 | }); | ||
416 | break; | ||
417 | case TupleDefinitionType.ODBCTranslator: | ||
418 | this.Core.AddTuple(new ODBCTranslatorTuple(sourceLineNumbers, id) | ||
419 | { | ||
420 | ComponentRef = componentId, | ||
421 | Description = name, | ||
422 | FileRef = driver, | ||
423 | SetupFileRef = setup, | ||
424 | }); | ||
425 | break; | ||
426 | default: | ||
427 | throw new ArgumentOutOfRangeException(nameof(tupleDefinitionType)); | ||
428 | } | ||
413 | } | 429 | } |
414 | } | 430 | } |
415 | 431 | ||
@@ -457,10 +473,28 @@ namespace WixToolset.Core | |||
457 | 473 | ||
458 | if (!this.Core.EncounteredError) | 474 | if (!this.Core.EncounteredError) |
459 | { | 475 | { |
460 | var tuple = this.Core.CreateTuple(sourceLineNumbers, tupleDefinitionType, new Identifier(AccessModifier.Private, parentId, id)); | 476 | var identifier = new Identifier(AccessModifier.Private, parentId, id); |
461 | tuple.Set(0, parentId); | 477 | switch (tupleDefinitionType) |
462 | tuple.Set(1, id); | 478 | { |
463 | tuple.Set(2, propertyValue); | 479 | case TupleDefinitionType.ODBCAttribute: |
480 | this.Core.AddTuple(new ODBCAttributeTuple(sourceLineNumbers, identifier) | ||
481 | { | ||
482 | DriverRef = parentId, | ||
483 | Attribute = id, | ||
484 | Value = propertyValue, | ||
485 | }); | ||
486 | break; | ||
487 | case TupleDefinitionType.ODBCSourceAttribute: | ||
488 | this.Core.AddTuple(new ODBCSourceAttributeTuple(sourceLineNumbers, identifier) | ||
489 | { | ||
490 | DataSourceRef = parentId, | ||
491 | Attribute = id, | ||
492 | Value = propertyValue, | ||
493 | }); | ||
494 | break; | ||
495 | default: | ||
496 | throw new ArgumentOutOfRangeException(nameof(tupleDefinitionType)); | ||
497 | } | ||
464 | } | 498 | } |
465 | } | 499 | } |
466 | 500 | ||
@@ -674,13 +708,11 @@ namespace WixToolset.Core | |||
674 | switch (installScope) | 708 | switch (installScope) |
675 | { | 709 | { |
676 | case "perMachine": | 710 | case "perMachine": |
677 | { | ||
678 | this.Core.AddTuple(new PropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, "ALLUSERS")) | 711 | this.Core.AddTuple(new PropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, "ALLUSERS")) |
679 | { | 712 | { |
680 | Value = "1" | 713 | Value = "1" |
681 | }); | 714 | }); |
682 | installScopeSeen = true; | 715 | installScopeSeen = true; |
683 | } | ||
684 | break; | 716 | break; |
685 | case "perUser": | 717 | case "perUser": |
686 | sourceBits |= 8; | 718 | sourceBits |= 8; |
@@ -1353,18 +1385,18 @@ namespace WixToolset.Core | |||
1353 | { | 1385 | { |
1354 | if (!this.Core.EncounteredError) | 1386 | if (!this.Core.EncounteredError) |
1355 | { | 1387 | { |
1356 | var tuple = new ProgIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, progId)) | 1388 | var tuple = this.Core.AddTuple(new ProgIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, progId)) |
1357 | { | 1389 | { |
1358 | ProgId = progId, | 1390 | ProgId = progId, |
1359 | ParentProgIdRef = parent, | 1391 | ParentProgIdRef = parent, |
1360 | ClassRef = classId, | 1392 | ClassRef = classId, |
1361 | Description = description, | 1393 | Description = description, |
1362 | }; | 1394 | }); |
1363 | 1395 | ||
1364 | if (null != icon) | 1396 | if (null != icon) |
1365 | { | 1397 | { |
1366 | tuple.IconRef = icon; | 1398 | tuple.IconRef = icon; |
1367 | this.Core.CreateSimpleReference(sourceLineNumbers, "Icon", icon); | 1399 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Icon, icon); |
1368 | } | 1400 | } |
1369 | 1401 | ||
1370 | if (CompilerConstants.IntegerNotSet != iconIndex) | 1402 | if (CompilerConstants.IntegerNotSet != iconIndex) |
@@ -1372,9 +1404,7 @@ namespace WixToolset.Core | |||
1372 | tuple.IconIndex = iconIndex; | 1404 | tuple.IconIndex = iconIndex; |
1373 | } | 1405 | } |
1374 | 1406 | ||
1375 | this.Core.AddTuple(tuple); | 1407 | this.Core.EnsureTable(sourceLineNumbers, WindowsInstallerTableDefinitions.Class); |
1376 | |||
1377 | this.Core.EnsureTable(sourceLineNumbers, "Class"); | ||
1378 | } | 1408 | } |
1379 | } | 1409 | } |
1380 | else if (YesNoType.No == advertise) | 1410 | else if (YesNoType.No == advertise) |
@@ -1403,7 +1433,7 @@ namespace WixToolset.Core | |||
1403 | 1433 | ||
1404 | if (null != icon) // ProgId's Default Icon | 1434 | if (null != icon) // ProgId's Default Icon |
1405 | { | 1435 | { |
1406 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", icon); | 1436 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, icon); |
1407 | 1437 | ||
1408 | icon = String.Format(CultureInfo.InvariantCulture, "\"[#{0}]\"", icon); | 1438 | icon = String.Format(CultureInfo.InvariantCulture, "\"[#{0}]\"", icon); |
1409 | 1439 | ||
@@ -1513,7 +1543,7 @@ namespace WixToolset.Core | |||
1513 | 1543 | ||
1514 | if ("ErrorDialog" == id.Id) | 1544 | if ("ErrorDialog" == id.Id) |
1515 | { | 1545 | { |
1516 | this.Core.CreateSimpleReference(sourceLineNumbers, "Dialog", value); | 1546 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, value); |
1517 | } | 1547 | } |
1518 | 1548 | ||
1519 | foreach (var child in node.Elements()) | 1549 | foreach (var child in node.Elements()) |
@@ -1764,15 +1794,13 @@ namespace WixToolset.Core | |||
1764 | 1794 | ||
1765 | if (!this.Core.EncounteredError && null != name) | 1795 | if (!this.Core.EncounteredError && null != name) |
1766 | { | 1796 | { |
1767 | var tuple = new RegistryTuple(sourceLineNumbers, id) | 1797 | this.Core.AddTuple(new RegistryTuple(sourceLineNumbers, id) |
1768 | { | 1798 | { |
1769 | Root = root.Value, | 1799 | Root = root.Value, |
1770 | Key = key, | 1800 | Key = key, |
1771 | Name = name, | 1801 | Name = name, |
1772 | ComponentRef = componentId, | 1802 | ComponentRef = componentId, |
1773 | }; | 1803 | }); |
1774 | |||
1775 | this.Core.AddTuple(tuple); | ||
1776 | } | 1804 | } |
1777 | 1805 | ||
1778 | return keyPath; | 1806 | return keyPath; |
@@ -2011,7 +2039,7 @@ namespace WixToolset.Core | |||
2011 | 2039 | ||
2012 | if (!this.Core.EncounteredError) | 2040 | if (!this.Core.EncounteredError) |
2013 | { | 2041 | { |
2014 | var tuple = new RegistryTuple(sourceLineNumbers, id) | 2042 | this.Core.AddTuple(new RegistryTuple(sourceLineNumbers, id) |
2015 | { | 2043 | { |
2016 | Root = root.Value, | 2044 | Root = root.Value, |
2017 | Key = key, | 2045 | Key = key, |
@@ -2020,15 +2048,7 @@ namespace WixToolset.Core | |||
2020 | ValueType = valueType, | 2048 | ValueType = valueType, |
2021 | ValueAction = actionType, | 2049 | ValueAction = actionType, |
2022 | ComponentRef = componentId, | 2050 | ComponentRef = componentId, |
2023 | }; | 2051 | }); |
2024 | |||
2025 | this.Core.AddTuple(tuple); | ||
2026 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.Registry, id); | ||
2027 | //row.Set(1, (int)root); | ||
2028 | //row.Set(2, key); | ||
2029 | //row.Set(3, name); | ||
2030 | //row.Set(4, value); | ||
2031 | //row.Set(5, componentId); | ||
2032 | } | 2052 | } |
2033 | 2053 | ||
2034 | // If this was just a regular registry key (that could be the key path) | 2054 | // If this was just a regular registry key (that could be the key path) |
@@ -2134,16 +2154,14 @@ namespace WixToolset.Core | |||
2134 | 2154 | ||
2135 | if (!this.Core.EncounteredError) | 2155 | if (!this.Core.EncounteredError) |
2136 | { | 2156 | { |
2137 | var tuple = new RemoveRegistryTuple(sourceLineNumbers, id) | 2157 | this.Core.AddTuple(new RemoveRegistryTuple(sourceLineNumbers, id) |
2138 | { | 2158 | { |
2139 | Root = root.Value, | 2159 | Root = root.Value, |
2140 | Key = key, | 2160 | Key = key, |
2141 | Name = name, | 2161 | Name = name, |
2142 | Action = actionType.Value, | 2162 | Action = actionType.Value, |
2143 | ComponentRef = componentId | 2163 | ComponentRef = componentId, |
2144 | }; | 2164 | }); |
2145 | |||
2146 | this.Core.AddTuple(tuple); | ||
2147 | } | 2165 | } |
2148 | } | 2166 | } |
2149 | 2167 | ||
@@ -2212,15 +2230,13 @@ namespace WixToolset.Core | |||
2212 | 2230 | ||
2213 | if (!this.Core.EncounteredError) | 2231 | if (!this.Core.EncounteredError) |
2214 | { | 2232 | { |
2215 | var tuple = new RemoveRegistryTuple(sourceLineNumbers, id) | 2233 | this.Core.AddTuple(new RemoveRegistryTuple(sourceLineNumbers, id) |
2216 | { | 2234 | { |
2217 | Root = root.Value, | 2235 | Root = root.Value, |
2218 | Key = key, | 2236 | Key = key, |
2219 | Name = name, | 2237 | Name = name, |
2220 | ComponentRef = componentId | 2238 | ComponentRef = componentId |
2221 | }; | 2239 | }); |
2222 | |||
2223 | this.Core.AddTuple(tuple); | ||
2224 | } | 2240 | } |
2225 | } | 2241 | } |
2226 | 2242 | ||
@@ -2333,16 +2349,14 @@ namespace WixToolset.Core | |||
2333 | 2349 | ||
2334 | if (!this.Core.EncounteredError) | 2350 | if (!this.Core.EncounteredError) |
2335 | { | 2351 | { |
2336 | var tuple = new RemoveFileTuple(sourceLineNumbers, id) | 2352 | this.Core.AddTuple(new RemoveFileTuple(sourceLineNumbers, id) |
2337 | { | 2353 | { |
2338 | ComponentRef = componentId, | 2354 | ComponentRef = componentId, |
2339 | FileName = this.GetMsiFilenameValue(shortName, name), | 2355 | FileName = this.GetMsiFilenameValue(shortName, name), |
2340 | DirProperty = directory ?? property ?? parentDirectory, | 2356 | DirProperty = directory ?? property ?? parentDirectory, |
2341 | OnInstall = onInstall, | 2357 | OnInstall = onInstall, |
2342 | OnUninstall = onUninstall | 2358 | OnUninstall = onUninstall, |
2343 | }; | 2359 | }); |
2344 | |||
2345 | this.Core.AddTuple(tuple); | ||
2346 | } | 2360 | } |
2347 | } | 2361 | } |
2348 | 2362 | ||
@@ -2423,15 +2437,13 @@ namespace WixToolset.Core | |||
2423 | 2437 | ||
2424 | if (!this.Core.EncounteredError) | 2438 | if (!this.Core.EncounteredError) |
2425 | { | 2439 | { |
2426 | var tuple = new RemoveFileTuple(sourceLineNumbers, id) | 2440 | this.Core.AddTuple(new RemoveFileTuple(sourceLineNumbers, id) |
2427 | { | 2441 | { |
2428 | ComponentRef = componentId, | 2442 | ComponentRef = componentId, |
2429 | DirProperty = directory ?? property ?? parentDirectory, | 2443 | DirProperty = directory ?? property ?? parentDirectory, |
2430 | OnInstall = onInstall, | 2444 | OnInstall = onInstall, |
2431 | OnUninstall = onUninstall | 2445 | OnUninstall = onUninstall |
2432 | }; | 2446 | }); |
2433 | |||
2434 | this.Core.AddTuple(tuple); | ||
2435 | } | 2447 | } |
2436 | } | 2448 | } |
2437 | 2449 | ||
@@ -2540,7 +2552,7 @@ namespace WixToolset.Core | |||
2540 | if (customAction) | 2552 | if (customAction) |
2541 | { | 2553 | { |
2542 | actionName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); | 2554 | actionName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); |
2543 | this.Core.CreateSimpleReference(childSourceLineNumbers, "CustomAction", actionName); | 2555 | this.Core.CreateSimpleReference(childSourceLineNumbers, TupleDefinitions.CustomAction, actionName); |
2544 | } | 2556 | } |
2545 | else | 2557 | else |
2546 | { | 2558 | { |
@@ -2551,7 +2563,7 @@ namespace WixToolset.Core | |||
2551 | if (customAction || showDialog || specialAction || specialStandardAction) | 2563 | if (customAction || showDialog || specialAction || specialStandardAction) |
2552 | { | 2564 | { |
2553 | afterAction = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); | 2565 | afterAction = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); |
2554 | this.Core.CreateSimpleReference(childSourceLineNumbers, "WixAction", sequenceTable.ToString(), afterAction); | 2566 | this.Core.CreateSimpleReference(childSourceLineNumbers, TupleDefinitions.WixAction, sequenceTable.ToString(), afterAction); |
2555 | } | 2567 | } |
2556 | else | 2568 | else |
2557 | { | 2569 | { |
@@ -2562,7 +2574,7 @@ namespace WixToolset.Core | |||
2562 | if (customAction || showDialog || specialAction || specialStandardAction) | 2574 | if (customAction || showDialog || specialAction || specialStandardAction) |
2563 | { | 2575 | { |
2564 | beforeAction = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); | 2576 | beforeAction = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); |
2565 | this.Core.CreateSimpleReference(childSourceLineNumbers, "WixAction", sequenceTable.ToString(), beforeAction); | 2577 | this.Core.CreateSimpleReference(childSourceLineNumbers, TupleDefinitions.WixAction, sequenceTable.ToString(), beforeAction); |
2566 | } | 2578 | } |
2567 | else | 2579 | else |
2568 | { | 2580 | { |
@@ -2573,7 +2585,7 @@ namespace WixToolset.Core | |||
2573 | if (showDialog) | 2585 | if (showDialog) |
2574 | { | 2586 | { |
2575 | actionName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); | 2587 | actionName = this.Core.GetAttributeIdentifierValue(childSourceLineNumbers, attrib); |
2576 | this.Core.CreateSimpleReference(childSourceLineNumbers, "Dialog", actionName); | 2588 | this.Core.CreateSimpleReference(childSourceLineNumbers, TupleDefinitions.Dialog, actionName); |
2577 | } | 2589 | } |
2578 | else | 2590 | else |
2579 | { | 2591 | { |
@@ -2699,7 +2711,7 @@ namespace WixToolset.Core | |||
2699 | } | 2711 | } |
2700 | else | 2712 | else |
2701 | { | 2713 | { |
2702 | var tuple = new WixActionTuple(childSourceLineNumbers, new Identifier(AccessModifier.Public, sequenceTable, actionName)) | 2714 | var tuple = this.Core.AddTuple(new WixActionTuple(childSourceLineNumbers, new Identifier(AccessModifier.Public, sequenceTable, actionName)) |
2703 | { | 2715 | { |
2704 | SequenceTable = sequenceTable, | 2716 | SequenceTable = sequenceTable, |
2705 | Action = actionName, | 2717 | Action = actionName, |
@@ -2707,14 +2719,12 @@ namespace WixToolset.Core | |||
2707 | Before = beforeAction, | 2719 | Before = beforeAction, |
2708 | After = afterAction, | 2720 | After = afterAction, |
2709 | Overridable = overridable, | 2721 | Overridable = overridable, |
2710 | }; | 2722 | }); |
2711 | 2723 | ||
2712 | if (CompilerConstants.IntegerNotSet != sequence) | 2724 | if (CompilerConstants.IntegerNotSet != sequence) |
2713 | { | 2725 | { |
2714 | tuple.Sequence = sequence; | 2726 | tuple.Sequence = sequence; |
2715 | } | 2727 | } |
2716 | |||
2717 | this.Core.AddTuple(tuple); | ||
2718 | } | 2728 | } |
2719 | } | 2729 | } |
2720 | } | 2730 | } |
@@ -3008,7 +3018,7 @@ namespace WixToolset.Core | |||
3008 | { | 3018 | { |
3009 | if (!String.IsNullOrEmpty(delayedAutoStart)) | 3019 | if (!String.IsNullOrEmpty(delayedAutoStart)) |
3010 | { | 3020 | { |
3011 | var tuple = new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".DS"))) | 3021 | this.Core.AddTuple(new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".DS"))) |
3012 | { | 3022 | { |
3013 | Name = name, | 3023 | Name = name, |
3014 | OnInstall = install, | 3024 | OnInstall = install, |
@@ -3017,20 +3027,12 @@ namespace WixToolset.Core | |||
3017 | ConfigType = MsiServiceConfigType.DelayedAutoStart, | 3027 | ConfigType = MsiServiceConfigType.DelayedAutoStart, |
3018 | Argument = delayedAutoStart, | 3028 | Argument = delayedAutoStart, |
3019 | ComponentRef = componentId, | 3029 | ComponentRef = componentId, |
3020 | }; | 3030 | }); |
3021 | |||
3022 | this.Core.AddTuple(tuple); | ||
3023 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.MsiServiceConfig, new Identifier(String.Concat(id.Id, ".DS"), id.Access)); | ||
3024 | //row.Set(1, name); | ||
3025 | //row.Set(2, events); | ||
3026 | //row.Set(3, 3); | ||
3027 | //row.Set(4, delayedAutoStart); | ||
3028 | //row.Set(5, componentId); | ||
3029 | } | 3031 | } |
3030 | 3032 | ||
3031 | if (!String.IsNullOrEmpty(failureActionsWhen)) | 3033 | if (!String.IsNullOrEmpty(failureActionsWhen)) |
3032 | { | 3034 | { |
3033 | var tuple = new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".FA"))) | 3035 | this.Core.AddTuple(new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".FA"))) |
3034 | { | 3036 | { |
3035 | Name = name, | 3037 | Name = name, |
3036 | OnInstall = install, | 3038 | OnInstall = install, |
@@ -3039,20 +3041,12 @@ namespace WixToolset.Core | |||
3039 | ConfigType = MsiServiceConfigType.FailureActionsFlag, | 3041 | ConfigType = MsiServiceConfigType.FailureActionsFlag, |
3040 | Argument = failureActionsWhen, | 3042 | Argument = failureActionsWhen, |
3041 | ComponentRef = componentId, | 3043 | ComponentRef = componentId, |
3042 | }; | 3044 | }); |
3043 | |||
3044 | this.Core.AddTuple(tuple); | ||
3045 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.MsiServiceConfig, new Identifier(String.Concat(id.Id, ".FA"), id.Access)); | ||
3046 | //row.Set(1, name); | ||
3047 | //row.Set(2, events); | ||
3048 | //row.Set(3, 4); | ||
3049 | //row.Set(4, failureActionsWhen); | ||
3050 | //row.Set(5, componentId); | ||
3051 | } | 3045 | } |
3052 | 3046 | ||
3053 | if (!String.IsNullOrEmpty(sid)) | 3047 | if (!String.IsNullOrEmpty(sid)) |
3054 | { | 3048 | { |
3055 | var tuple = new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".SS"))) | 3049 | this.Core.AddTuple(new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".SS"))) |
3056 | { | 3050 | { |
3057 | Name = name, | 3051 | Name = name, |
3058 | OnInstall = install, | 3052 | OnInstall = install, |
@@ -3061,20 +3055,12 @@ namespace WixToolset.Core | |||
3061 | ConfigType = MsiServiceConfigType.ServiceSidInfo, | 3055 | ConfigType = MsiServiceConfigType.ServiceSidInfo, |
3062 | Argument = sid, | 3056 | Argument = sid, |
3063 | ComponentRef = componentId, | 3057 | ComponentRef = componentId, |
3064 | }; | 3058 | }); |
3065 | |||
3066 | this.Core.AddTuple(tuple); | ||
3067 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.MsiServiceConfig, new Identifier(String.Concat(id.Id, ".SS"), id.Access)); | ||
3068 | //row.Set(1, name); | ||
3069 | //row.Set(2, events); | ||
3070 | //row.Set(3, 5); | ||
3071 | //row.Set(4, sid); | ||
3072 | //row.Set(5, componentId); | ||
3073 | } | 3059 | } |
3074 | 3060 | ||
3075 | if (!String.IsNullOrEmpty(requiredPrivileges)) | 3061 | if (!String.IsNullOrEmpty(requiredPrivileges)) |
3076 | { | 3062 | { |
3077 | var tuple = new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".RP"))) | 3063 | this.Core.AddTuple(new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".RP"))) |
3078 | { | 3064 | { |
3079 | Name = name, | 3065 | Name = name, |
3080 | OnInstall = install, | 3066 | OnInstall = install, |
@@ -3083,20 +3069,12 @@ namespace WixToolset.Core | |||
3083 | ConfigType = MsiServiceConfigType.RequiredPrivilegesInfo, | 3069 | ConfigType = MsiServiceConfigType.RequiredPrivilegesInfo, |
3084 | Argument = requiredPrivileges, | 3070 | Argument = requiredPrivileges, |
3085 | ComponentRef = componentId, | 3071 | ComponentRef = componentId, |
3086 | }; | 3072 | }); |
3087 | |||
3088 | this.Core.AddTuple(tuple); | ||
3089 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.MsiServiceConfig, new Identifier(String.Concat(id.Id, ".RP"), id.Access)); | ||
3090 | //row.Set(1, name); | ||
3091 | //row.Set(2, events); | ||
3092 | //row.Set(3, 6); | ||
3093 | //row.Set(4, requiredPrivileges); | ||
3094 | //row.Set(5, componentId); | ||
3095 | } | 3073 | } |
3096 | 3074 | ||
3097 | if (!String.IsNullOrEmpty(preShutdownDelay)) | 3075 | if (!String.IsNullOrEmpty(preShutdownDelay)) |
3098 | { | 3076 | { |
3099 | var tuple = new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".PD"))) | 3077 | this.Core.AddTuple(new MsiServiceConfigTuple(sourceLineNumbers, new Identifier(id.Access, String.Concat(id.Id, ".PD"))) |
3100 | { | 3078 | { |
3101 | Name = name, | 3079 | Name = name, |
3102 | OnInstall = install, | 3080 | OnInstall = install, |
@@ -3105,15 +3083,7 @@ namespace WixToolset.Core | |||
3105 | ConfigType = MsiServiceConfigType.PreshutdownInfo, | 3083 | ConfigType = MsiServiceConfigType.PreshutdownInfo, |
3106 | Argument = preShutdownDelay, | 3084 | Argument = preShutdownDelay, |
3107 | ComponentRef = componentId, | 3085 | ComponentRef = componentId, |
3108 | }; | 3086 | }); |
3109 | |||
3110 | this.Core.AddTuple(tuple); | ||
3111 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.MsiServiceConfig, new Identifier(String.Concat(id.Id, ".PD"), id.Access)); | ||
3112 | //row.Set(1, name); | ||
3113 | //row.Set(2, events); | ||
3114 | //row.Set(3, 7); | ||
3115 | //row.Set(4, preShutdownDelay); | ||
3116 | //row.Set(5, componentId); | ||
3117 | } | 3087 | } |
3118 | } | 3088 | } |
3119 | } | 3089 | } |
@@ -3284,7 +3254,7 @@ namespace WixToolset.Core | |||
3284 | 3254 | ||
3285 | if (!this.Core.EncounteredError) | 3255 | if (!this.Core.EncounteredError) |
3286 | { | 3256 | { |
3287 | var tuple = new MsiServiceConfigFailureActionsTuple(sourceLineNumbers, id) | 3257 | this.Core.AddTuple(new MsiServiceConfigFailureActionsTuple(sourceLineNumbers, id) |
3288 | { | 3258 | { |
3289 | Name = name, | 3259 | Name = name, |
3290 | OnInstall = install, | 3260 | OnInstall = install, |
@@ -3296,9 +3266,7 @@ namespace WixToolset.Core | |||
3296 | Actions = actions, | 3266 | Actions = actions, |
3297 | DelayActions = actionsDelays, | 3267 | DelayActions = actionsDelays, |
3298 | ComponentRef = componentId, | 3268 | ComponentRef = componentId, |
3299 | }; | 3269 | }); |
3300 | |||
3301 | this.Core.AddTuple(tuple); | ||
3302 | } | 3270 | } |
3303 | } | 3271 | } |
3304 | 3272 | ||
@@ -3438,7 +3406,7 @@ namespace WixToolset.Core | |||
3438 | 3406 | ||
3439 | if (!this.Core.EncounteredError) | 3407 | if (!this.Core.EncounteredError) |
3440 | { | 3408 | { |
3441 | var tuple = new ServiceControlTuple(sourceLineNumbers, id) | 3409 | this.Core.AddTuple(new ServiceControlTuple(sourceLineNumbers, id) |
3442 | { | 3410 | { |
3443 | Name = name, | 3411 | Name = name, |
3444 | InstallRemove = installRemove, | 3412 | InstallRemove = installRemove, |
@@ -3450,9 +3418,7 @@ namespace WixToolset.Core | |||
3450 | Arguments = arguments, | 3418 | Arguments = arguments, |
3451 | Wait = wait, | 3419 | Wait = wait, |
3452 | ComponentRef = componentId | 3420 | ComponentRef = componentId |
3453 | }; | 3421 | }); |
3454 | |||
3455 | this.Core.AddTuple(tuple); | ||
3456 | } | 3422 | } |
3457 | } | 3423 | } |
3458 | 3424 | ||
@@ -3697,7 +3663,7 @@ namespace WixToolset.Core | |||
3697 | 3663 | ||
3698 | if (!this.Core.EncounteredError) | 3664 | if (!this.Core.EncounteredError) |
3699 | { | 3665 | { |
3700 | var tuple = new ServiceInstallTuple(sourceLineNumbers, id) | 3666 | this.Core.AddTuple(new ServiceInstallTuple(sourceLineNumbers, id) |
3701 | { | 3667 | { |
3702 | Name = name, | 3668 | Name = name, |
3703 | DisplayName = displayName, | 3669 | DisplayName = displayName, |
@@ -3713,23 +3679,7 @@ namespace WixToolset.Core | |||
3713 | Description = description, | 3679 | Description = description, |
3714 | Interactive = interactive, | 3680 | Interactive = interactive, |
3715 | Vital = vital | 3681 | Vital = vital |
3716 | }; | 3682 | }); |
3717 | |||
3718 | this.Core.AddTuple(tuple); | ||
3719 | |||
3720 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.ServiceInstall, id); | ||
3721 | //row.Set(1, name); | ||
3722 | //row.Set(2, displayName); | ||
3723 | //row.Set(3, typebits); | ||
3724 | //row.Set(4, startType); | ||
3725 | //row.Set(5, errorbits); | ||
3726 | //row.Set(6, loadOrderGroup); | ||
3727 | //row.Set(7, dependencies); | ||
3728 | //row.Set(8, account); | ||
3729 | //row.Set(9, password); | ||
3730 | //row.Set(10, arguments); | ||
3731 | //row.Set(11, componentId); | ||
3732 | //row.Set(12, description); | ||
3733 | } | 3683 | } |
3734 | } | 3684 | } |
3735 | 3685 | ||
@@ -3758,7 +3708,7 @@ namespace WixToolset.Core | |||
3758 | break; | 3708 | break; |
3759 | case "Id": | 3709 | case "Id": |
3760 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3710 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3761 | this.Core.CreateSimpleReference(sourceLineNumbers, "Directory", id); | 3711 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id); |
3762 | break; | 3712 | break; |
3763 | case "Sequence": | 3713 | case "Sequence": |
3764 | var sequenceValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 3714 | var sequenceValue = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
@@ -3816,16 +3766,14 @@ namespace WixToolset.Core | |||
3816 | 3766 | ||
3817 | if (!this.Core.EncounteredError) | 3767 | if (!this.Core.EncounteredError) |
3818 | { | 3768 | { |
3819 | var tuple = new CustomActionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, actionName)) | 3769 | this.Core.AddTuple(new CustomActionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, actionName)) |
3820 | { | 3770 | { |
3821 | ExecutionType = executionType, | 3771 | ExecutionType = executionType, |
3822 | SourceType = CustomActionSourceType.Directory, | 3772 | SourceType = CustomActionSourceType.Directory, |
3823 | TargetType = CustomActionTargetType.TextData, | 3773 | TargetType = CustomActionTargetType.TextData, |
3824 | Source = id, | 3774 | Source = id, |
3825 | Target = value | 3775 | Target = value |
3826 | }; | 3776 | }); |
3827 | |||
3828 | this.Core.AddTuple(tuple); | ||
3829 | 3777 | ||
3830 | foreach (var sequence in sequences) | 3778 | foreach (var sequence in sequences) |
3831 | { | 3779 | { |
@@ -3966,16 +3914,14 @@ namespace WixToolset.Core | |||
3966 | this.Core.Write(ErrorMessages.ActionScheduledRelativeToItself(sourceLineNumbers, node.Name.LocalName, "After", afterAction)); | 3914 | this.Core.Write(ErrorMessages.ActionScheduledRelativeToItself(sourceLineNumbers, node.Name.LocalName, "After", afterAction)); |
3967 | } | 3915 | } |
3968 | 3916 | ||
3969 | var tuple = new CustomActionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, actionName)) | 3917 | this.Core.AddTuple(new CustomActionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, actionName)) |
3970 | { | 3918 | { |
3971 | ExecutionType = executionType, | 3919 | ExecutionType = executionType, |
3972 | SourceType = CustomActionSourceType.Property, | 3920 | SourceType = CustomActionSourceType.Property, |
3973 | TargetType = CustomActionTargetType.TextData, | 3921 | TargetType = CustomActionTargetType.TextData, |
3974 | Source = id, | 3922 | Source = id, |
3975 | Target = value | 3923 | Target = value, |
3976 | }; | 3924 | }); |
3977 | |||
3978 | this.Core.AddTuple(tuple); | ||
3979 | 3925 | ||
3980 | foreach (var sequence in sequences) | 3926 | foreach (var sequence in sequences) |
3981 | { | 3927 | { |
@@ -4192,7 +4138,7 @@ namespace WixToolset.Core | |||
4192 | break; | 4138 | break; |
4193 | case "Icon": | 4139 | case "Icon": |
4194 | icon = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 4140 | icon = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
4195 | this.Core.CreateSimpleReference(sourceLineNumbers, "Icon", icon); | 4141 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Icon, icon); |
4196 | break; | 4142 | break; |
4197 | case "IconIndex": | 4143 | case "IconIndex": |
4198 | iconIndex = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, Int16.MinValue + 1, Int16.MaxValue); | 4144 | iconIndex = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, Int16.MinValue + 1, Int16.MaxValue); |
@@ -4390,7 +4336,7 @@ namespace WixToolset.Core | |||
4390 | target = String.Format(CultureInfo.InvariantCulture, "[#{0}]", defaultTarget); | 4336 | target = String.Format(CultureInfo.InvariantCulture, "[#{0}]", defaultTarget); |
4391 | } | 4337 | } |
4392 | 4338 | ||
4393 | var tuple = new ShortcutTuple(sourceLineNumbers, id) | 4339 | this.Core.AddTuple(new ShortcutTuple(sourceLineNumbers, id) |
4394 | { | 4340 | { |
4395 | DirectoryRef = directory, | 4341 | DirectoryRef = directory, |
4396 | Name = name, | 4342 | Name = name, |
@@ -4408,9 +4354,7 @@ namespace WixToolset.Core | |||
4408 | DisplayResourceId = displayResourceId, | 4354 | DisplayResourceId = displayResourceId, |
4409 | DescriptionResourceDll = descriptionResourceDll, | 4355 | DescriptionResourceDll = descriptionResourceDll, |
4410 | DescriptionResourceId = descriptionResourceId, | 4356 | DescriptionResourceId = descriptionResourceId, |
4411 | }; | 4357 | }); |
4412 | |||
4413 | this.Core.AddTuple(tuple); | ||
4414 | } | 4358 | } |
4415 | } | 4359 | } |
4416 | 4360 | ||
@@ -4679,7 +4623,7 @@ namespace WixToolset.Core | |||
4679 | 4623 | ||
4680 | if (!this.Core.EncounteredError) | 4624 | if (!this.Core.EncounteredError) |
4681 | { | 4625 | { |
4682 | var tuple = new TypeLibTuple(sourceLineNumbers) | 4626 | var tuple = this.Core.AddTuple(new TypeLibTuple(sourceLineNumbers) |
4683 | { | 4627 | { |
4684 | LibId = id, | 4628 | LibId = id, |
4685 | Language = language, | 4629 | Language = language, |
@@ -4687,7 +4631,7 @@ namespace WixToolset.Core | |||
4687 | Description = description, | 4631 | Description = description, |
4688 | DirectoryRef = helpDirectory, | 4632 | DirectoryRef = helpDirectory, |
4689 | FeatureRef = Guid.Empty.ToString("B") | 4633 | FeatureRef = Guid.Empty.ToString("B") |
4690 | }; | 4634 | }); |
4691 | 4635 | ||
4692 | if (CompilerConstants.IntegerNotSet != majorVersion || CompilerConstants.IntegerNotSet != minorVersion) | 4636 | if (CompilerConstants.IntegerNotSet != majorVersion || CompilerConstants.IntegerNotSet != minorVersion) |
4693 | { | 4637 | { |
@@ -4698,8 +4642,6 @@ namespace WixToolset.Core | |||
4698 | { | 4642 | { |
4699 | tuple.Cost = cost; | 4643 | tuple.Cost = cost; |
4700 | } | 4644 | } |
4701 | |||
4702 | this.Core.AddTuple(tuple); | ||
4703 | } | 4645 | } |
4704 | } | 4646 | } |
4705 | else if (YesNoType.No == advertise) | 4647 | else if (YesNoType.No == advertise) |
@@ -4894,7 +4836,7 @@ namespace WixToolset.Core | |||
4894 | 4836 | ||
4895 | if (!this.Core.EncounteredError) | 4837 | if (!this.Core.EncounteredError) |
4896 | { | 4838 | { |
4897 | var tuple = new UpgradeTuple(sourceLineNumbers) | 4839 | this.Core.AddTuple(new UpgradeTuple(sourceLineNumbers) |
4898 | { | 4840 | { |
4899 | UpgradeCode = upgradeId, | 4841 | UpgradeCode = upgradeId, |
4900 | VersionMin = minimum, | 4842 | VersionMin = minimum, |
@@ -4908,15 +4850,13 @@ namespace WixToolset.Core | |||
4908 | OnlyDetect = onlyDetect, | 4850 | OnlyDetect = onlyDetect, |
4909 | Remove = removeFeatures, | 4851 | Remove = removeFeatures, |
4910 | ActionProperty = actionProperty | 4852 | ActionProperty = actionProperty |
4911 | }; | 4853 | }); |
4912 | |||
4913 | this.Core.AddTuple(tuple); | ||
4914 | 4854 | ||
4915 | // Ensure that RemoveExistingProducts is authored in InstallExecuteSequence | 4855 | // Ensure that RemoveExistingProducts is authored in InstallExecuteSequence |
4916 | // if at least one row in Upgrade table lacks the OnlyDetect attribute. | 4856 | // if at least one row in Upgrade table lacks the OnlyDetect attribute. |
4917 | if (!onlyDetect) | 4857 | if (!onlyDetect) |
4918 | { | 4858 | { |
4919 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixAction", "InstallExecuteSequence", "RemoveExistingProducts"); | 4859 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixAction, "InstallExecuteSequence", "RemoveExistingProducts"); |
4920 | } | 4860 | } |
4921 | } | 4861 | } |
4922 | } | 4862 | } |
@@ -4964,7 +4904,7 @@ namespace WixToolset.Core | |||
4964 | break; | 4904 | break; |
4965 | case "TargetFile": | 4905 | case "TargetFile": |
4966 | targetFile = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 4906 | targetFile = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
4967 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", targetFile); | 4907 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, targetFile); |
4968 | break; | 4908 | break; |
4969 | case "TargetProperty": | 4909 | case "TargetProperty": |
4970 | targetProperty = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 4910 | targetProperty = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
@@ -5021,20 +4961,18 @@ namespace WixToolset.Core | |||
5021 | 4961 | ||
5022 | if (!this.Core.EncounteredError) | 4962 | if (!this.Core.EncounteredError) |
5023 | { | 4963 | { |
5024 | var tuple = new VerbTuple(sourceLineNumbers) | 4964 | var tuple = this.Core.AddTuple(new VerbTuple(sourceLineNumbers) |
5025 | { | 4965 | { |
5026 | ExtensionRef = extension, | 4966 | ExtensionRef = extension, |
5027 | Verb = id, | 4967 | Verb = id, |
5028 | Command = command, | 4968 | Command = command, |
5029 | Argument = argument, | 4969 | Argument = argument, |
5030 | }; | 4970 | }); |
5031 | 4971 | ||
5032 | if (CompilerConstants.IntegerNotSet != sequence) | 4972 | if (CompilerConstants.IntegerNotSet != sequence) |
5033 | { | 4973 | { |
5034 | tuple.Sequence = sequence; | 4974 | tuple.Sequence = sequence; |
5035 | } | 4975 | } |
5036 | |||
5037 | this.Core.AddTuple(tuple); | ||
5038 | } | 4976 | } |
5039 | } | 4977 | } |
5040 | else if (YesNoType.No == advertise) | 4978 | else if (YesNoType.No == advertise) |