diff options
Diffstat (limited to 'src/WixToolset.Core/Compiler.cs')
-rw-r--r-- | src/WixToolset.Core/Compiler.cs | 415 |
1 files changed, 168 insertions, 247 deletions
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs index 9db938e1..d4ad3279 100644 --- a/src/WixToolset.Core/Compiler.cs +++ b/src/WixToolset.Core/Compiler.cs | |||
@@ -12,6 +12,7 @@ namespace WixToolset.Core | |||
12 | using System.Xml.Linq; | 12 | using System.Xml.Linq; |
13 | using WixToolset.Data; | 13 | using WixToolset.Data; |
14 | using WixToolset.Data.Tuples; | 14 | using WixToolset.Data.Tuples; |
15 | using WixToolset.Data.WindowsInstaller; | ||
15 | using WixToolset.Extensibility; | 16 | using WixToolset.Extensibility; |
16 | using WixToolset.Extensibility.Data; | 17 | using WixToolset.Extensibility.Data; |
17 | using WixToolset.Extensibility.Services; | 18 | using WixToolset.Extensibility.Services; |
@@ -163,7 +164,7 @@ namespace WixToolset.Core | |||
163 | this.Core = null; | 164 | this.Core = null; |
164 | } | 165 | } |
165 | 166 | ||
166 | target.UpdateLevel(IntermediateLevels.Compiled); | 167 | target.UpdateLevel(Data.IntermediateLevels.Compiled); |
167 | 168 | ||
168 | return this.Messaging.EncounteredError ? null : target; | 169 | return this.Messaging.EncounteredError ? null : target; |
169 | } | 170 | } |
@@ -324,13 +325,11 @@ namespace WixToolset.Core | |||
324 | this.Core.Write(ErrorMessages.SearchPropertyNotUppercase(sourceLineNumbers, "Property", "Id", propertyId.Id)); | 325 | this.Core.Write(ErrorMessages.SearchPropertyNotUppercase(sourceLineNumbers, "Property", "Id", propertyId.Id)); |
325 | } | 326 | } |
326 | 327 | ||
327 | var tuple = new AppSearchTuple(sourceLineNumbers, new Identifier(propertyId.Access, propertyId.Id, signature)) | 328 | this.Core.AddTuple(new AppSearchTuple(sourceLineNumbers, new Identifier(propertyId.Access, propertyId.Id, signature)) |
328 | { | 329 | { |
329 | PropertyRef = propertyId.Id, | 330 | PropertyRef = propertyId.Id, |
330 | SignatureRef = signature | 331 | SignatureRef = signature |
331 | }; | 332 | }); |
332 | |||
333 | this.Core.AddTuple(tuple); | ||
334 | } | 333 | } |
335 | } | 334 | } |
336 | 335 | ||
@@ -371,7 +370,7 @@ namespace WixToolset.Core | |||
371 | { | 370 | { |
372 | var section = this.Core.ActiveSection; | 371 | var section = this.Core.ActiveSection; |
373 | 372 | ||
374 | // Add the row to a separate section if requested. | 373 | // Add the tuple to a separate section if requested. |
375 | if (fragment) | 374 | if (fragment) |
376 | { | 375 | { |
377 | var id = String.Concat(this.Core.ActiveSection.Id, ".", propertyId.Id); | 376 | var id = String.Concat(this.Core.ActiveSection.Id, ".", propertyId.Id); |
@@ -379,26 +378,24 @@ namespace WixToolset.Core | |||
379 | section = this.Core.CreateSection(id, SectionType.Fragment, this.Core.ActiveSection.Codepage, this.Context.CompilationId); | 378 | section = this.Core.CreateSection(id, SectionType.Fragment, this.Core.ActiveSection.Codepage, this.Context.CompilationId); |
380 | 379 | ||
381 | // Reference the property in the active section. | 380 | // Reference the property in the active section. |
382 | this.Core.CreateSimpleReference(sourceLineNumbers, "Property", propertyId.Id); | 381 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Property, propertyId.Id); |
383 | } | 382 | } |
384 | 383 | ||
385 | // Allow row to exist with no value so that PropertyRefs can be made for *Search elements | 384 | // Allow tuple to exist with no value so that PropertyRefs can be made for *Search elements |
386 | // the linker will remove these rows before the final output is created. | 385 | // the linker will remove these tuples before the final output is created. |
387 | var tuple = new PropertyTuple(sourceLineNumbers, propertyId) | 386 | section.AddTuple(new PropertyTuple(sourceLineNumbers, propertyId) |
388 | { | 387 | { |
389 | Value = value, | 388 | Value = value, |
390 | }; | 389 | }); |
391 | |||
392 | section.Tuples.Add(tuple); | ||
393 | 390 | ||
394 | if (admin || hidden || secure) | 391 | if (admin || hidden || secure) |
395 | { | 392 | { |
396 | this.AddWixPropertyRow(sourceLineNumbers, propertyId, admin, secure, hidden, section); | 393 | this.AddWixPropertyTuple(sourceLineNumbers, propertyId, admin, secure, hidden, section); |
397 | } | 394 | } |
398 | } | 395 | } |
399 | } | 396 | } |
400 | 397 | ||
401 | private void AddWixPropertyRow(SourceLineNumber sourceLineNumbers, Identifier property, bool admin, bool secure, bool hidden, IntermediateSection section = null) | 398 | private void AddWixPropertyTuple(SourceLineNumber sourceLineNumbers, Identifier property, bool admin, bool secure, bool hidden, IntermediateSection section = null) |
402 | { | 399 | { |
403 | if (secure && property.Id != property.Id.ToUpperInvariant()) | 400 | if (secure && property.Id != property.Id.ToUpperInvariant()) |
404 | { | 401 | { |
@@ -409,18 +406,16 @@ namespace WixToolset.Core | |||
409 | { | 406 | { |
410 | section = this.Core.ActiveSection; | 407 | section = this.Core.ActiveSection; |
411 | 408 | ||
412 | this.Core.EnsureTable(sourceLineNumbers, "Property"); // Property table is always required when using WixProperty table. | 409 | this.Core.EnsureTable(sourceLineNumbers, WindowsInstallerTableDefinitions.Property); // Property table is always required when using WixProperty table. |
413 | } | 410 | } |
414 | 411 | ||
415 | var tuple = new WixPropertyTuple(sourceLineNumbers) | 412 | section.AddTuple(new WixPropertyTuple(sourceLineNumbers) |
416 | { | 413 | { |
417 | PropertyRef = property.Id, | 414 | PropertyRef = property.Id, |
418 | Admin = admin, | 415 | Admin = admin, |
419 | Hidden = hidden, | 416 | Hidden = hidden, |
420 | Secure = secure | 417 | Secure = secure |
421 | }; | 418 | }); |
422 | |||
423 | section.Tuples.Add(tuple); | ||
424 | } | 419 | } |
425 | 420 | ||
426 | /// <summary> | 421 | /// <summary> |
@@ -550,7 +545,7 @@ namespace WixToolset.Core | |||
550 | 545 | ||
551 | if (!this.Core.EncounteredError) | 546 | if (!this.Core.EncounteredError) |
552 | { | 547 | { |
553 | var tuple = new AppIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, appId)) | 548 | this.Core.AddTuple(new AppIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, appId)) |
554 | { | 549 | { |
555 | AppId = appId, | 550 | AppId = appId, |
556 | RemoteServerName = remoteServerName, | 551 | RemoteServerName = remoteServerName, |
@@ -558,10 +553,8 @@ namespace WixToolset.Core | |||
558 | ServiceParameters = serviceParameters, | 553 | ServiceParameters = serviceParameters, |
559 | DllSurrogate = dllSurrogate, | 554 | DllSurrogate = dllSurrogate, |
560 | ActivateAtStorage = activateAtStorage, | 555 | ActivateAtStorage = activateAtStorage, |
561 | RunAsInteractiveUser = runAsInteractiveUser | 556 | RunAsInteractiveUser = runAsInteractiveUser, |
562 | }; | 557 | }); |
563 | |||
564 | this.Core.AddTuple(tuple); | ||
565 | } | 558 | } |
566 | } | 559 | } |
567 | else if (YesNoType.No == advertise) | 560 | else if (YesNoType.No == advertise) |
@@ -650,14 +643,12 @@ namespace WixToolset.Core | |||
650 | 643 | ||
651 | if (!this.Core.EncounteredError) | 644 | if (!this.Core.EncounteredError) |
652 | { | 645 | { |
653 | var tuple = new MsiAssemblyNameTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, componentId, id)) | 646 | this.Core.AddTuple(new MsiAssemblyNameTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, componentId, id)) |
654 | { | 647 | { |
655 | ComponentRef = componentId, | 648 | ComponentRef = componentId, |
656 | Name = id, | 649 | Name = id, |
657 | Value = value | 650 | Value = value, |
658 | }; | 651 | }); |
659 | |||
660 | this.Core.AddTuple(tuple); | ||
661 | } | 652 | } |
662 | } | 653 | } |
663 | 654 | ||
@@ -739,12 +730,10 @@ namespace WixToolset.Core | |||
739 | 730 | ||
740 | if (!this.Core.EncounteredError) | 731 | if (!this.Core.EncounteredError) |
741 | { | 732 | { |
742 | var tuple = new BinaryTuple(sourceLineNumbers, id) | 733 | var tuple = this.Core.AddTuple(new BinaryTuple(sourceLineNumbers, id) |
743 | { | 734 | { |
744 | Data = new IntermediateFieldPathValue { Path = sourceFile } | 735 | Data = new IntermediateFieldPathValue { Path = sourceFile } |
745 | }; | 736 | }); |
746 | |||
747 | this.Core.AddTuple(tuple); | ||
748 | 737 | ||
749 | if (YesNoType.Yes == suppressModularization) | 738 | if (YesNoType.Yes == suppressModularization) |
750 | { | 739 | { |
@@ -820,7 +809,7 @@ namespace WixToolset.Core | |||
820 | { | 809 | { |
821 | this.Core.AddTuple(new IconTuple(sourceLineNumbers, id) | 810 | this.Core.AddTuple(new IconTuple(sourceLineNumbers, id) |
822 | { | 811 | { |
823 | Data = new IntermediateFieldPathValue { Path = sourceFile } | 812 | Data = new IntermediateFieldPathValue { Path = sourceFile }, |
824 | }); | 813 | }); |
825 | } | 814 | } |
826 | 815 | ||
@@ -844,7 +833,7 @@ namespace WixToolset.Core | |||
844 | { | 833 | { |
845 | case "Property": | 834 | case "Property": |
846 | property = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 835 | property = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
847 | this.Core.CreateSimpleReference(sourceLineNumbers, "Property", property); | 836 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Property, property); |
848 | break; | 837 | break; |
849 | default: | 838 | default: |
850 | this.Core.UnexpectedAttribute(node, attrib); | 839 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -940,15 +929,13 @@ namespace WixToolset.Core | |||
940 | 929 | ||
941 | if (!this.Core.EncounteredError) | 930 | if (!this.Core.EncounteredError) |
942 | { | 931 | { |
943 | var tuple = new WixInstanceTransformsTuple(sourceLineNumbers, id) | 932 | this.Core.AddTuple(new WixInstanceTransformsTuple(sourceLineNumbers, id) |
944 | { | 933 | { |
945 | PropertyId = propertyId, | 934 | PropertyId = propertyId, |
946 | ProductCode = productCode, | 935 | ProductCode = productCode, |
947 | ProductName = productName, | 936 | ProductName = productName, |
948 | UpgradeCode = upgradeCode | 937 | UpgradeCode = upgradeCode |
949 | }; | 938 | }); |
950 | |||
951 | this.Core.AddTuple(tuple); | ||
952 | } | 939 | } |
953 | } | 940 | } |
954 | 941 | ||
@@ -979,7 +966,7 @@ namespace WixToolset.Core | |||
979 | break; | 966 | break; |
980 | case "Feature": | 967 | case "Feature": |
981 | feature = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 968 | feature = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
982 | this.Core.CreateSimpleReference(sourceLineNumbers, "Feature", feature); | 969 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Feature, feature); |
983 | break; | 970 | break; |
984 | case "Qualifier": | 971 | case "Qualifier": |
985 | qualifier = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 972 | qualifier = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
@@ -1009,16 +996,14 @@ namespace WixToolset.Core | |||
1009 | 996 | ||
1010 | if (!this.Core.EncounteredError) | 997 | if (!this.Core.EncounteredError) |
1011 | { | 998 | { |
1012 | var tuple = new PublishComponentTuple(sourceLineNumbers) | 999 | this.Core.AddTuple(new PublishComponentTuple(sourceLineNumbers) |
1013 | { | 1000 | { |
1014 | ComponentId = id, | 1001 | ComponentId = id, |
1015 | Qualifier = qualifier, | 1002 | Qualifier = qualifier, |
1016 | ComponentRef = componentId, | 1003 | ComponentRef = componentId, |
1017 | AppData = appData, | 1004 | AppData = appData, |
1018 | FeatureRef = feature ?? Guid.Empty.ToString("B"), | 1005 | FeatureRef = feature ?? Guid.Empty.ToString("B"), |
1019 | }; | 1006 | }); |
1020 | |||
1021 | this.Core.AddTuple(tuple); | ||
1022 | } | 1007 | } |
1023 | } | 1008 | } |
1024 | 1009 | ||
@@ -1195,7 +1180,7 @@ namespace WixToolset.Core | |||
1195 | 1180 | ||
1196 | if (!String.IsNullOrEmpty(localFileServer)) | 1181 | if (!String.IsNullOrEmpty(localFileServer)) |
1197 | { | 1182 | { |
1198 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", localFileServer); | 1183 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, localFileServer); |
1199 | } | 1184 | } |
1200 | 1185 | ||
1201 | // Local variables used strictly for child node processing. | 1186 | // Local variables used strictly for child node processing. |
@@ -1268,7 +1253,7 @@ namespace WixToolset.Core | |||
1268 | { | 1253 | { |
1269 | foreach (var context in contexts) | 1254 | foreach (var context in contexts) |
1270 | { | 1255 | { |
1271 | var tuple = new ClassTuple(sourceLineNumbers) | 1256 | var tuple = this.Core.AddTuple(new ClassTuple(sourceLineNumbers) |
1272 | { | 1257 | { |
1273 | CLSID = classId, | 1258 | CLSID = classId, |
1274 | Context = context, | 1259 | Context = context, |
@@ -1280,26 +1265,24 @@ namespace WixToolset.Core | |||
1280 | Argument = argument, | 1265 | Argument = argument, |
1281 | FeatureRef = Guid.Empty.ToString("B"), | 1266 | FeatureRef = Guid.Empty.ToString("B"), |
1282 | RelativePath = YesNoType.Yes == relativePath, | 1267 | RelativePath = YesNoType.Yes == relativePath, |
1283 | }; | 1268 | }); |
1284 | 1269 | ||
1285 | if (null != appId) | 1270 | if (null != appId) |
1286 | { | 1271 | { |
1287 | tuple.AppIdRef = appId; | 1272 | tuple.AppIdRef = appId; |
1288 | this.Core.CreateSimpleReference(sourceLineNumbers, "AppId", appId); | 1273 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.AppId, appId); |
1289 | } | 1274 | } |
1290 | 1275 | ||
1291 | if (null != icon) | 1276 | if (null != icon) |
1292 | { | 1277 | { |
1293 | tuple.IconRef = icon; | 1278 | tuple.IconRef = icon; |
1294 | this.Core.CreateSimpleReference(sourceLineNumbers, "Icon", icon); | 1279 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Icon, icon); |
1295 | } | 1280 | } |
1296 | 1281 | ||
1297 | if (CompilerConstants.IntegerNotSet != iconIndex) | 1282 | if (CompilerConstants.IntegerNotSet != iconIndex) |
1298 | { | 1283 | { |
1299 | tuple.IconIndex = iconIndex; | 1284 | tuple.IconIndex = iconIndex; |
1300 | } | 1285 | } |
1301 | |||
1302 | this.Core.AddTuple(tuple); | ||
1303 | } | 1286 | } |
1304 | } | 1287 | } |
1305 | } | 1288 | } |
@@ -1379,7 +1362,7 @@ namespace WixToolset.Core | |||
1379 | 1362 | ||
1380 | if (null != icon) // ClassId default icon | 1363 | if (null != icon) // ClassId default icon |
1381 | { | 1364 | { |
1382 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", icon); | 1365 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, icon); |
1383 | 1366 | ||
1384 | icon = String.Format(CultureInfo.InvariantCulture, "\"[#{0}]\"", icon); | 1367 | icon = String.Format(CultureInfo.InvariantCulture, "\"[#{0}]\"", icon); |
1385 | 1368 | ||
@@ -1709,7 +1692,7 @@ namespace WixToolset.Core | |||
1709 | 1692 | ||
1710 | if (!this.Core.EncounteredError) | 1693 | if (!this.Core.EncounteredError) |
1711 | { | 1694 | { |
1712 | var tuple = new UpgradeTuple(sourceLineNumbers) | 1695 | this.Core.AddTuple(new UpgradeTuple(sourceLineNumbers) |
1713 | { | 1696 | { |
1714 | UpgradeCode = upgradeCode, | 1697 | UpgradeCode = upgradeCode, |
1715 | VersionMin = minimum, | 1698 | VersionMin = minimum, |
@@ -1720,9 +1703,7 @@ namespace WixToolset.Core | |||
1720 | ExcludeLanguages = excludeLanguages, | 1703 | ExcludeLanguages = excludeLanguages, |
1721 | VersionMaxInclusive = maxInclusive, | 1704 | VersionMaxInclusive = maxInclusive, |
1722 | VersionMinInclusive = minInclusive, | 1705 | VersionMinInclusive = minInclusive, |
1723 | }; | 1706 | }); |
1724 | |||
1725 | this.Core.AddTuple(tuple); | ||
1726 | } | 1707 | } |
1727 | } | 1708 | } |
1728 | 1709 | ||
@@ -1862,7 +1843,7 @@ namespace WixToolset.Core | |||
1862 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); | 1843 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); |
1863 | } | 1844 | } |
1864 | oneChild = true; | 1845 | oneChild = true; |
1865 | var newId = this.ParseSimpleRefElement(child, "Signature"); // FileSearch signatures override parent signatures | 1846 | var newId = this.ParseSimpleRefElement(child, TupleDefinitions.Signature); // FileSearch signatures override parent signatures |
1866 | id = new Identifier(AccessModifier.Private, newId); | 1847 | id = new Identifier(AccessModifier.Private, newId); |
1867 | signature = null; | 1848 | signature = null; |
1868 | break; | 1849 | break; |
@@ -1879,16 +1860,14 @@ namespace WixToolset.Core | |||
1879 | 1860 | ||
1880 | if (!this.Core.EncounteredError) | 1861 | if (!this.Core.EncounteredError) |
1881 | { | 1862 | { |
1882 | var tuple = new RegLocatorTuple(sourceLineNumbers, id) | 1863 | this.Core.AddTuple(new RegLocatorTuple(sourceLineNumbers, id) |
1883 | { | 1864 | { |
1884 | Root = root.Value, | 1865 | Root = root.Value, |
1885 | Key = key, | 1866 | Key = key, |
1886 | Name = name, | 1867 | Name = name, |
1887 | Type = type.Value, | 1868 | Type = type.Value, |
1888 | Win64 = search64bit | 1869 | Win64 = search64bit, |
1889 | }; | 1870 | }); |
1890 | |||
1891 | this.Core.AddTuple(tuple); | ||
1892 | } | 1871 | } |
1893 | 1872 | ||
1894 | return signature; | 1873 | return signature; |
@@ -1912,7 +1891,7 @@ namespace WixToolset.Core | |||
1912 | { | 1891 | { |
1913 | case "Id": | 1892 | case "Id": |
1914 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1893 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
1915 | this.Core.CreateSimpleReference(sourceLineNumbers, "RegLocator", id); | 1894 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.RegLocator, id); |
1916 | break; | 1895 | break; |
1917 | default: | 1896 | default: |
1918 | this.Core.UnexpectedAttribute(node, attrib); | 1897 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -2524,7 +2503,7 @@ namespace WixToolset.Core | |||
2524 | // finally add the Component table row | 2503 | // finally add the Component table row |
2525 | if (!this.Core.EncounteredError) | 2504 | if (!this.Core.EncounteredError) |
2526 | { | 2505 | { |
2527 | var tuple = new ComponentTuple(sourceLineNumbers, id) | 2506 | this.Core.AddTuple(new ComponentTuple(sourceLineNumbers, id) |
2528 | { | 2507 | { |
2529 | ComponentId = guid, | 2508 | ComponentId = guid, |
2530 | DirectoryRef = directoryId, | 2509 | DirectoryRef = directoryId, |
@@ -2539,10 +2518,8 @@ namespace WixToolset.Core | |||
2539 | Shared = shared, | 2518 | Shared = shared, |
2540 | Transitive = transitive, | 2519 | Transitive = transitive, |
2541 | UninstallWhenSuperseded = uninstallWhenSuperseded, | 2520 | UninstallWhenSuperseded = uninstallWhenSuperseded, |
2542 | Win64 = win64 | 2521 | Win64 = win64, |
2543 | }; | 2522 | }); |
2544 | |||
2545 | this.Core.AddTuple(tuple); | ||
2546 | 2523 | ||
2547 | if (multiInstance) | 2524 | if (multiInstance) |
2548 | { | 2525 | { |
@@ -2554,26 +2531,22 @@ namespace WixToolset.Core | |||
2554 | 2531 | ||
2555 | if (0 < symbols.Count) | 2532 | if (0 < symbols.Count) |
2556 | { | 2533 | { |
2557 | var tupleDelaPatch = new WixDeltaPatchSymbolPathsTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, SymbolPathType.Component, id.Id)) | 2534 | this.Core.AddTuple(new WixDeltaPatchSymbolPathsTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, SymbolPathType.Component, id.Id)) |
2558 | { | 2535 | { |
2559 | SymbolType = SymbolPathType.Component, | 2536 | SymbolType = SymbolPathType.Component, |
2560 | SymbolId = id.Id, | 2537 | SymbolId = id.Id, |
2561 | SymbolPaths = String.Join(";", symbols) | 2538 | SymbolPaths = String.Join(";", symbols), |
2562 | }; | 2539 | }); |
2563 | |||
2564 | this.Core.AddTuple(tupleDelaPatch); | ||
2565 | } | 2540 | } |
2566 | 2541 | ||
2567 | // Complus | 2542 | // Complus |
2568 | if (CompilerConstants.IntegerNotSet != comPlusBits) | 2543 | if (CompilerConstants.IntegerNotSet != comPlusBits) |
2569 | { | 2544 | { |
2570 | var complusTuple = new ComplusTuple(sourceLineNumbers) | 2545 | this.Core.AddTuple(new ComplusTuple(sourceLineNumbers) |
2571 | { | 2546 | { |
2572 | ComponentRef = id.Id, | 2547 | ComponentRef = id.Id, |
2573 | ExpType = comPlusBits, | 2548 | ExpType = comPlusBits, |
2574 | }; | 2549 | }); |
2575 | |||
2576 | this.Core.AddTuple(complusTuple); | ||
2577 | } | 2550 | } |
2578 | 2551 | ||
2579 | // if this is a module, automatically add this component to the references to ensure it gets in the ModuleComponents table | 2552 | // if this is a module, automatically add this component to the references to ensure it gets in the ModuleComponents table |
@@ -2698,7 +2671,7 @@ namespace WixToolset.Core | |||
2698 | { | 2671 | { |
2699 | case "Id": | 2672 | case "Id": |
2700 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2673 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
2701 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixComponentGroup", id); | 2674 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixComponentGroup, id); |
2702 | break; | 2675 | break; |
2703 | case "Primary": | 2676 | case "Primary": |
2704 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 2677 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -2747,7 +2720,7 @@ namespace WixToolset.Core | |||
2747 | { | 2720 | { |
2748 | case "Id": | 2721 | case "Id": |
2749 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2722 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
2750 | this.Core.CreateSimpleReference(sourceLineNumbers, "Component", id); | 2723 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Component, id); |
2751 | break; | 2724 | break; |
2752 | case "Primary": | 2725 | case "Primary": |
2753 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 2726 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -2871,7 +2844,7 @@ namespace WixToolset.Core | |||
2871 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); | 2844 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); |
2872 | } | 2845 | } |
2873 | oneChild = true; | 2846 | oneChild = true; |
2874 | var newId = this.ParseSimpleRefElement(child, "Signature"); // FileSearch signatures override parent signatures | 2847 | var newId = this.ParseSimpleRefElement(child, TupleDefinitions.Signature); // FileSearch signatures override parent signatures |
2875 | id = new Identifier(AccessModifier.Private, newId); | 2848 | id = new Identifier(AccessModifier.Private, newId); |
2876 | signature = null; | 2849 | signature = null; |
2877 | break; | 2850 | break; |
@@ -2888,18 +2861,12 @@ namespace WixToolset.Core | |||
2888 | 2861 | ||
2889 | if (!this.Core.EncounteredError) | 2862 | if (!this.Core.EncounteredError) |
2890 | { | 2863 | { |
2891 | var tuple = new CompLocatorTuple(sourceLineNumbers, id) | 2864 | this.Core.AddTuple(new CompLocatorTuple(sourceLineNumbers, id) |
2892 | { | 2865 | { |
2893 | SignatureRef = id.Id, | 2866 | SignatureRef = id.Id, |
2894 | ComponentId = componentId, | 2867 | ComponentId = componentId, |
2895 | Type = type, | 2868 | Type = type, |
2896 | }; | 2869 | }); |
2897 | |||
2898 | this.Core.AddTuple(tuple); | ||
2899 | |||
2900 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.CompLocator, id); | ||
2901 | //row.Set(1, componentId); | ||
2902 | //row.Set(2, type); | ||
2903 | } | 2870 | } |
2904 | 2871 | ||
2905 | return signature; | 2872 | return signature; |
@@ -2965,13 +2932,11 @@ namespace WixToolset.Core | |||
2965 | 2932 | ||
2966 | if (!this.Core.EncounteredError) | 2933 | if (!this.Core.EncounteredError) |
2967 | { | 2934 | { |
2968 | var tuple = new CreateFolderTuple(sourceLineNumbers) | 2935 | this.Core.AddTuple(new CreateFolderTuple(sourceLineNumbers) |
2969 | { | 2936 | { |
2970 | DirectoryRef = directoryId, | 2937 | DirectoryRef = directoryId, |
2971 | ComponentRef = componentId | 2938 | ComponentRef = componentId, |
2972 | }; | 2939 | }); |
2973 | |||
2974 | this.Core.AddTuple(tuple); | ||
2975 | } | 2940 | } |
2976 | 2941 | ||
2977 | return directoryId; | 2942 | return directoryId; |
@@ -3027,7 +2992,7 @@ namespace WixToolset.Core | |||
3027 | this.Core.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); | 2992 | this.Core.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); |
3028 | } | 2993 | } |
3029 | fileId = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2994 | fileId = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3030 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", fileId); | 2995 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, fileId); |
3031 | break; | 2996 | break; |
3032 | case "SourceDirectory": | 2997 | case "SourceDirectory": |
3033 | sourceDirectory = this.Core.CreateDirectoryReferenceFromInlineSyntax(sourceLineNumbers, attrib, null); | 2998 | sourceDirectory = this.Core.CreateDirectoryReferenceFromInlineSyntax(sourceLineNumbers, attrib, null); |
@@ -3092,17 +3057,15 @@ namespace WixToolset.Core | |||
3092 | 3057 | ||
3093 | if (!this.Core.EncounteredError) | 3058 | if (!this.Core.EncounteredError) |
3094 | { | 3059 | { |
3095 | var tuple = new MoveFileTuple(sourceLineNumbers, id) | 3060 | this.Core.AddTuple(new MoveFileTuple(sourceLineNumbers, id) |
3096 | { | 3061 | { |
3097 | ComponentRef = componentId, | 3062 | ComponentRef = componentId, |
3098 | SourceName = sourceName, | 3063 | SourceName = sourceName, |
3099 | DestName= String.IsNullOrEmpty(destinationShortName) && String.IsNullOrEmpty(destinationName) ? null : this.GetMsiFilenameValue(destinationShortName, destinationName), | 3064 | DestName= String.IsNullOrEmpty(destinationShortName) && String.IsNullOrEmpty(destinationName) ? null : this.GetMsiFilenameValue(destinationShortName, destinationName), |
3100 | SourceFolder = sourceDirectory ?? sourceProperty, | 3065 | SourceFolder = sourceDirectory ?? sourceProperty, |
3101 | DestFolder = destinationDirectory ?? destinationProperty, | 3066 | DestFolder = destinationDirectory ?? destinationProperty, |
3102 | Delete = delete | 3067 | Delete = delete, |
3103 | }; | 3068 | }); |
3104 | |||
3105 | this.Core.AddTuple(tuple); | ||
3106 | } | 3069 | } |
3107 | } | 3070 | } |
3108 | else // copy the file | 3071 | else // copy the file |
@@ -3139,15 +3102,13 @@ namespace WixToolset.Core | |||
3139 | 3102 | ||
3140 | if (!this.Core.EncounteredError) | 3103 | if (!this.Core.EncounteredError) |
3141 | { | 3104 | { |
3142 | var tuple = new DuplicateFileTuple(sourceLineNumbers, id) | 3105 | this.Core.AddTuple(new DuplicateFileTuple(sourceLineNumbers, id) |
3143 | { | 3106 | { |
3144 | ComponentRef = componentId, | 3107 | ComponentRef = componentId, |
3145 | FileRef = fileId, | 3108 | FileRef = fileId, |
3146 | DestinationName = String.IsNullOrEmpty(destinationShortName) && String.IsNullOrEmpty(destinationName) ? null : this.GetMsiFilenameValue(destinationShortName, destinationName), | 3109 | DestinationName = String.IsNullOrEmpty(destinationShortName) && String.IsNullOrEmpty(destinationName) ? null : this.GetMsiFilenameValue(destinationShortName, destinationName), |
3147 | DestinationFolder = destinationDirectory ?? destinationProperty | 3110 | DestinationFolder = destinationDirectory ?? destinationProperty, |
3148 | }; | 3111 | }); |
3149 | |||
3150 | this.Core.AddTuple(tuple); | ||
3151 | } | 3112 | } |
3152 | } | 3113 | } |
3153 | } | 3114 | } |
@@ -3194,7 +3155,7 @@ namespace WixToolset.Core | |||
3194 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3155 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3195 | //sourceBits = MsiInterop.MsidbCustomActionTypeBinaryData; | 3156 | //sourceBits = MsiInterop.MsidbCustomActionTypeBinaryData; |
3196 | sourceType = CustomActionSourceType.Binary; | 3157 | sourceType = CustomActionSourceType.Binary; |
3197 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", source); // add a reference to the appropriate Binary | 3158 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, source); // add a reference to the appropriate Binary |
3198 | break; | 3159 | break; |
3199 | case "Directory": | 3160 | case "Directory": |
3200 | if (null != source) | 3161 | if (null != source) |
@@ -3229,7 +3190,7 @@ namespace WixToolset.Core | |||
3229 | // to add a reference. No need to look at the value. | 3190 | // to add a reference. No need to look at the value. |
3230 | if (Int32.TryParse(target, out var ignored)) | 3191 | if (Int32.TryParse(target, out var ignored)) |
3231 | { | 3192 | { |
3232 | this.Core.CreateSimpleReference(sourceLineNumbers, "Error", target); | 3193 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Error, target); |
3233 | } | 3194 | } |
3234 | break; | 3195 | break; |
3235 | case "ExeCommand": | 3196 | case "ExeCommand": |
@@ -3285,7 +3246,7 @@ namespace WixToolset.Core | |||
3285 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3246 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3286 | //sourceBits = MsiInterop.MsidbCustomActionTypeSourceFile; | 3247 | //sourceBits = MsiInterop.MsidbCustomActionTypeSourceFile; |
3287 | sourceType = CustomActionSourceType.File; | 3248 | sourceType = CustomActionSourceType.File; |
3288 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", source); // add a reference to the appropriate File | 3249 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, source); // add a reference to the appropriate File |
3289 | break; | 3250 | break; |
3290 | case "HideTarget": | 3251 | case "HideTarget": |
3291 | hidden = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 3252 | hidden = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -3533,7 +3494,7 @@ namespace WixToolset.Core | |||
3533 | 3494 | ||
3534 | if (!this.Core.EncounteredError) | 3495 | if (!this.Core.EncounteredError) |
3535 | { | 3496 | { |
3536 | var tuple = new CustomActionTuple(sourceLineNumbers, id) | 3497 | this.Core.AddTuple(new CustomActionTuple(sourceLineNumbers, id) |
3537 | { | 3498 | { |
3538 | ExecutionType = executionType, | 3499 | ExecutionType = executionType, |
3539 | Source = source, | 3500 | Source = source, |
@@ -3547,9 +3508,7 @@ namespace WixToolset.Core | |||
3547 | TSAware = tsAware, | 3508 | TSAware = tsAware, |
3548 | Win64 = win64, | 3509 | Win64 = win64, |
3549 | Hidden = hidden, | 3510 | Hidden = hidden, |
3550 | }; | 3511 | }); |
3551 | |||
3552 | this.Core.AddTuple(tuple); | ||
3553 | 3512 | ||
3554 | if (YesNoType.Yes == suppressModularization) | 3513 | if (YesNoType.Yes == suppressModularization) |
3555 | { | 3514 | { |
@@ -3562,9 +3521,9 @@ namespace WixToolset.Core | |||
3562 | /// Parses a simple reference element. | 3521 | /// Parses a simple reference element. |
3563 | /// </summary> | 3522 | /// </summary> |
3564 | /// <param name="node">Element to parse.</param> | 3523 | /// <param name="node">Element to parse.</param> |
3565 | /// <param name="table">Table which contains the target of the simple reference.</param> | 3524 | /// <param name="tupleDefinition">Tuple which contains the target of the simple reference.</param> |
3566 | /// <returns>Id of the referenced element.</returns> | 3525 | /// <returns>Id of the referenced element.</returns> |
3567 | private string ParseSimpleRefElement(XElement node, string table) | 3526 | private string ParseSimpleRefElement(XElement node, IntermediateTupleDefinition tupleDefinition) |
3568 | { | 3527 | { |
3569 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); | 3528 | var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node); |
3570 | string id = null; | 3529 | string id = null; |
@@ -3577,7 +3536,7 @@ namespace WixToolset.Core | |||
3577 | { | 3536 | { |
3578 | case "Id": | 3537 | case "Id": |
3579 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 3538 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
3580 | this.Core.CreateSimpleReference(sourceLineNumbers, table, id); | 3539 | this.Core.CreateSimpleReference(sourceLineNumbers, tupleDefinition.Name, id); |
3581 | break; | 3540 | break; |
3582 | default: | 3541 | default: |
3583 | this.Core.UnexpectedAttribute(node, attrib); | 3542 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -3640,7 +3599,7 @@ namespace WixToolset.Core | |||
3640 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); | 3599 | this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Id")); |
3641 | } | 3600 | } |
3642 | 3601 | ||
3643 | this.Core.CreateSimpleReference(sourceLineNumbers, "MsiPatchSequence", primaryKeys); | 3602 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.MsiPatchSequence, primaryKeys); |
3644 | 3603 | ||
3645 | this.Core.ParseForExtensionElements(node); | 3604 | this.Core.ParseForExtensionElements(node); |
3646 | 3605 | ||
@@ -3932,14 +3891,14 @@ namespace WixToolset.Core | |||
3932 | } | 3891 | } |
3933 | } | 3892 | } |
3934 | 3893 | ||
3935 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixCustomTable", tableId); | 3894 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixCustomTable, tableId); |
3936 | 3895 | ||
3937 | if (!this.Core.EncounteredError) | 3896 | if (!this.Core.EncounteredError) |
3938 | { | 3897 | { |
3939 | this.Core.AddTuple(new WixCustomRowTuple(childSourceLineNumbers) | 3898 | this.Core.AddTuple(new WixCustomRowTuple(childSourceLineNumbers) |
3940 | { | 3899 | { |
3941 | Table = tableId, | 3900 | Table = tableId, |
3942 | FieldData = dataValue | 3901 | FieldData = dataValue, |
3943 | }); | 3902 | }); |
3944 | } | 3903 | } |
3945 | break; | 3904 | break; |
@@ -3963,7 +3922,7 @@ namespace WixToolset.Core | |||
3963 | 3922 | ||
3964 | if (!this.Core.EncounteredError) | 3923 | if (!this.Core.EncounteredError) |
3965 | { | 3924 | { |
3966 | var tuple = new WixCustomTableTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, tableId)) | 3925 | this.Core.AddTuple(new WixCustomTableTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, tableId)) |
3967 | { | 3926 | { |
3968 | ColumnCount = columnCount, | 3927 | ColumnCount = columnCount, |
3969 | ColumnNames = columnNames, | 3928 | ColumnNames = columnNames, |
@@ -3977,10 +3936,8 @@ namespace WixToolset.Core | |||
3977 | Sets = sets, | 3936 | Sets = sets, |
3978 | Descriptions = descriptions, | 3937 | Descriptions = descriptions, |
3979 | Modularizations = modularizations, | 3938 | Modularizations = modularizations, |
3980 | Unreal = bootstrapperApplicationData | 3939 | Unreal = bootstrapperApplicationData, |
3981 | }; | 3940 | }); |
3982 | |||
3983 | this.Core.AddTuple(tuple); | ||
3984 | } | 3941 | } |
3985 | } | 3942 | } |
3986 | } | 3943 | } |
@@ -4079,7 +4036,7 @@ namespace WixToolset.Core | |||
4079 | if (inlineSyntax[0].EndsWith(":")) | 4036 | if (inlineSyntax[0].EndsWith(":")) |
4080 | { | 4037 | { |
4081 | parentId = inlineSyntax[0].TrimEnd(':'); | 4038 | parentId = inlineSyntax[0].TrimEnd(':'); |
4082 | this.Core.CreateSimpleReference(sourceLineNumbers, "Directory", parentId); | 4039 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, parentId); |
4083 | 4040 | ||
4084 | pathStartsAt = 1; | 4041 | pathStartsAt = 1; |
4085 | } | 4042 | } |
@@ -4224,7 +4181,7 @@ namespace WixToolset.Core | |||
4224 | 4181 | ||
4225 | if (!this.Core.EncounteredError) | 4182 | if (!this.Core.EncounteredError) |
4226 | { | 4183 | { |
4227 | var tuple = new DirectoryTuple(sourceLineNumbers, id) | 4184 | this.Core.AddTuple(new DirectoryTuple(sourceLineNumbers, id) |
4228 | { | 4185 | { |
4229 | ParentDirectoryRef = parentId, | 4186 | ParentDirectoryRef = parentId, |
4230 | Name = name, | 4187 | Name = name, |
@@ -4232,9 +4189,7 @@ namespace WixToolset.Core | |||
4232 | SourceName = sourceName, | 4189 | SourceName = sourceName, |
4233 | SourceShortName = shortSourceName, | 4190 | SourceShortName = shortSourceName, |
4234 | ComponentGuidGenerationSeed = componentGuidGenerationSeed | 4191 | ComponentGuidGenerationSeed = componentGuidGenerationSeed |
4235 | }; | 4192 | }); |
4236 | |||
4237 | this.Core.AddTuple(tuple); | ||
4238 | 4193 | ||
4239 | if (null != symbols) | 4194 | if (null != symbols) |
4240 | { | 4195 | { |
@@ -4268,7 +4223,7 @@ namespace WixToolset.Core | |||
4268 | { | 4223 | { |
4269 | case "Id": | 4224 | case "Id": |
4270 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 4225 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
4271 | this.Core.CreateSimpleReference(sourceLineNumbers, "Directory", id); | 4226 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Directory, id); |
4272 | break; | 4227 | break; |
4273 | case "DiskId": | 4228 | case "DiskId": |
4274 | diskId = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 1, Int16.MaxValue); | 4229 | diskId = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 1, Int16.MaxValue); |
@@ -4415,7 +4370,7 @@ namespace WixToolset.Core | |||
4415 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); | 4370 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); |
4416 | } | 4371 | } |
4417 | oneChild = true; | 4372 | oneChild = true; |
4418 | signature = this.ParseSimpleRefElement(child, "Signature"); | 4373 | signature = this.ParseSimpleRefElement(child, TupleDefinitions.Signature); |
4419 | break; | 4374 | break; |
4420 | default: | 4375 | default: |
4421 | this.Core.UnexpectedElement(node, child); | 4376 | this.Core.UnexpectedElement(node, child); |
@@ -4460,19 +4415,17 @@ namespace WixToolset.Core | |||
4460 | signature = id.Id; | 4415 | signature = id.Id; |
4461 | } | 4416 | } |
4462 | 4417 | ||
4463 | var tuple = new DrLocatorTuple(sourceLineNumbers, new Identifier(access, rowId, parentSignature, path)) | 4418 | var tuple = this.Core.AddTuple(new DrLocatorTuple(sourceLineNumbers, new Identifier(access, rowId, parentSignature, path)) |
4464 | { | 4419 | { |
4465 | SignatureRef = rowId, | 4420 | SignatureRef = rowId, |
4466 | Parent = parentSignature, | 4421 | Parent = parentSignature, |
4467 | Path = path, | 4422 | Path = path, |
4468 | }; | 4423 | }); |
4469 | 4424 | ||
4470 | if (CompilerConstants.IntegerNotSet != depth) | 4425 | if (CompilerConstants.IntegerNotSet != depth) |
4471 | { | 4426 | { |
4472 | tuple.Depth = depth; | 4427 | tuple.Depth = depth; |
4473 | } | 4428 | } |
4474 | |||
4475 | this.Core.AddTuple(tuple); | ||
4476 | } | 4429 | } |
4477 | 4430 | ||
4478 | return signature; | 4431 | return signature; |
@@ -4575,7 +4528,7 @@ namespace WixToolset.Core | |||
4575 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); | 4528 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); |
4576 | } | 4529 | } |
4577 | oneChild = true; | 4530 | oneChild = true; |
4578 | signature = this.ParseSimpleRefElement(child, "Signature"); | 4531 | signature = this.ParseSimpleRefElement(child, TupleDefinitions.Signature); |
4579 | break; | 4532 | break; |
4580 | default: | 4533 | default: |
4581 | this.Core.UnexpectedElement(node, child); | 4534 | this.Core.UnexpectedElement(node, child); |
@@ -4589,7 +4542,7 @@ namespace WixToolset.Core | |||
4589 | } | 4542 | } |
4590 | 4543 | ||
4591 | 4544 | ||
4592 | this.Core.CreateSimpleReference(sourceLineNumbers, "DrLocator", id.Id, parentSignature, path); | 4545 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.DrLocator, id.Id, parentSignature, path); |
4593 | 4546 | ||
4594 | return signature; | 4547 | return signature; |
4595 | } | 4548 | } |
@@ -4829,7 +4782,7 @@ namespace WixToolset.Core | |||
4829 | 4782 | ||
4830 | if (!this.Core.EncounteredError) | 4783 | if (!this.Core.EncounteredError) |
4831 | { | 4784 | { |
4832 | var tuple = new FeatureTuple(sourceLineNumbers, id) | 4785 | this.Core.AddTuple(new FeatureTuple(sourceLineNumbers, id) |
4833 | { | 4786 | { |
4834 | ParentFeatureRef = null, // this field is set in the linker | 4787 | ParentFeatureRef = null, // this field is set in the linker |
4835 | Title = title, | 4788 | Title = title, |
@@ -4841,9 +4794,7 @@ namespace WixToolset.Core | |||
4841 | DisallowAdvertise = disallowAdvertise, | 4794 | DisallowAdvertise = disallowAdvertise, |
4842 | InstallDefault = installDefault, | 4795 | InstallDefault = installDefault, |
4843 | TypicalDefault = typicalDefault, | 4796 | TypicalDefault = typicalDefault, |
4844 | }; | 4797 | }); |
4845 | |||
4846 | this.Core.AddTuple(tuple); | ||
4847 | 4798 | ||
4848 | if (ComplexReferenceParentType.Unknown != parentType) | 4799 | if (ComplexReferenceParentType.Unknown != parentType) |
4849 | { | 4800 | { |
@@ -4873,7 +4824,7 @@ namespace WixToolset.Core | |||
4873 | { | 4824 | { |
4874 | case "Id": | 4825 | case "Id": |
4875 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 4826 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
4876 | this.Core.CreateSimpleReference(sourceLineNumbers, "Feature", id); | 4827 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Feature, id); |
4877 | break; | 4828 | break; |
4878 | case "IgnoreParent": | 4829 | case "IgnoreParent": |
4879 | ignoreParent = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 4830 | ignoreParent = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -5053,7 +5004,7 @@ namespace WixToolset.Core | |||
5053 | { | 5004 | { |
5054 | case "Id": | 5005 | case "Id": |
5055 | id = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 5006 | id = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
5056 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixFeatureGroup", id); | 5007 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixFeatureGroup, id); |
5057 | break; | 5008 | break; |
5058 | case "IgnoreParent": | 5009 | case "IgnoreParent": |
5059 | ignoreParent = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 5010 | ignoreParent = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -5222,7 +5173,7 @@ namespace WixToolset.Core | |||
5222 | 5173 | ||
5223 | if (!this.Core.EncounteredError) | 5174 | if (!this.Core.EncounteredError) |
5224 | { | 5175 | { |
5225 | var tuple = new EnvironmentTuple(sourceLineNumbers, id) | 5176 | this.Core.AddTuple(new EnvironmentTuple(sourceLineNumbers, id) |
5226 | { | 5177 | { |
5227 | Name = name, | 5178 | Name = name, |
5228 | Value = value, | 5179 | Value = value, |
@@ -5232,14 +5183,7 @@ namespace WixToolset.Core | |||
5232 | Permanent = permanent, | 5183 | Permanent = permanent, |
5233 | System = system, | 5184 | System = system, |
5234 | ComponentRef = componentId | 5185 | ComponentRef = componentId |
5235 | }; | 5186 | }); |
5236 | |||
5237 | this.Core.AddTuple(tuple); | ||
5238 | |||
5239 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.Environment, id); | ||
5240 | //row.Set(1, String.Concat(action, uninstall, system ? "*" : String.Empty, name)); | ||
5241 | //row.Set(2, text); | ||
5242 | //row.Set(3, componentId); | ||
5243 | } | 5187 | } |
5244 | } | 5188 | } |
5245 | 5189 | ||
@@ -5282,12 +5226,10 @@ namespace WixToolset.Core | |||
5282 | 5226 | ||
5283 | if (!this.Core.EncounteredError) | 5227 | if (!this.Core.EncounteredError) |
5284 | { | 5228 | { |
5285 | var tuple = new ErrorTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, id)) | 5229 | this.Core.AddTuple(new ErrorTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, id)) |
5286 | { | 5230 | { |
5287 | Message = Common.GetInnerText(node) | 5231 | Message = Common.GetInnerText(node) |
5288 | }; | 5232 | }); |
5289 | |||
5290 | this.Core.AddTuple(tuple); | ||
5291 | } | 5233 | } |
5292 | } | 5234 | } |
5293 | 5235 | ||
@@ -5373,18 +5315,16 @@ namespace WixToolset.Core | |||
5373 | { | 5315 | { |
5374 | if (!this.Core.EncounteredError) | 5316 | if (!this.Core.EncounteredError) |
5375 | { | 5317 | { |
5376 | var tuple = new ExtensionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, extension, componentId)) | 5318 | this.Core.AddTuple(new ExtensionTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, extension, componentId)) |
5377 | { | 5319 | { |
5378 | Extension = extension, | 5320 | Extension = extension, |
5379 | ComponentRef = componentId, | 5321 | ComponentRef = componentId, |
5380 | ProgIdRef = progId, | 5322 | ProgIdRef = progId, |
5381 | MimeRef = mime, | 5323 | MimeRef = mime, |
5382 | FeatureRef = Guid.Empty.ToString("B") | 5324 | FeatureRef = Guid.Empty.ToString("B"), |
5383 | }; | 5325 | }); |
5384 | |||
5385 | this.Core.AddTuple(tuple); | ||
5386 | 5326 | ||
5387 | this.Core.EnsureTable(sourceLineNumbers, "Verb"); | 5327 | this.Core.EnsureTable(sourceLineNumbers, WindowsInstallerTableDefinitions.Verb); |
5388 | } | 5328 | } |
5389 | } | 5329 | } |
5390 | else if (YesNoType.No == advertise) | 5330 | else if (YesNoType.No == advertise) |
@@ -5481,11 +5421,11 @@ namespace WixToolset.Core | |||
5481 | break; | 5421 | break; |
5482 | case "AssemblyApplication": | 5422 | case "AssemblyApplication": |
5483 | assemblyApplication = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 5423 | assemblyApplication = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
5484 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", assemblyApplication); | 5424 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, assemblyApplication); |
5485 | break; | 5425 | break; |
5486 | case "AssemblyManifest": | 5426 | case "AssemblyManifest": |
5487 | assemblyManifest = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 5427 | assemblyManifest = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
5488 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", assemblyManifest); | 5428 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, assemblyManifest); |
5489 | break; | 5429 | break; |
5490 | case "BindPath": | 5430 | case "BindPath": |
5491 | bindPath = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); | 5431 | bindPath = this.Core.GetAttributeValue(sourceLineNumbers, attrib, EmptyRule.CanBeEmpty); |
@@ -5499,7 +5439,7 @@ namespace WixToolset.Core | |||
5499 | break; | 5439 | break; |
5500 | case "CompanionFile": | 5440 | case "CompanionFile": |
5501 | companionFile = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 5441 | companionFile = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
5502 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", companionFile); | 5442 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, companionFile); |
5503 | break; | 5443 | break; |
5504 | case "Compressed": | 5444 | case "Compressed": |
5505 | var compressedValue = this.Core.GetAttributeYesNoDefaultValue(sourceLineNumbers, attrib); | 5445 | var compressedValue = this.Core.GetAttributeYesNoDefaultValue(sourceLineNumbers, attrib); |
@@ -5797,7 +5737,7 @@ namespace WixToolset.Core | |||
5797 | attributes |= compressed.HasValue && compressed == false ? FileTupleAttributes.Uncompressed : 0; | 5737 | attributes |= compressed.HasValue && compressed == false ? FileTupleAttributes.Uncompressed : 0; |
5798 | attributes |= generatedShortFileName ? FileTupleAttributes.GeneratedShortFileName : 0; | 5738 | attributes |= generatedShortFileName ? FileTupleAttributes.GeneratedShortFileName : 0; |
5799 | 5739 | ||
5800 | var tuple = new FileTuple(sourceLineNumbers, id) | 5740 | this.Core.AddTuple(new FileTuple(sourceLineNumbers, id) |
5801 | { | 5741 | { |
5802 | ComponentRef = componentId, | 5742 | ComponentRef = componentId, |
5803 | Name = name, | 5743 | Name = name, |
@@ -5831,10 +5771,8 @@ namespace WixToolset.Core | |||
5831 | IgnoreOffsets = ignoreOffsets, | 5771 | IgnoreOffsets = ignoreOffsets, |
5832 | IgnoreLengths = ignoreLengths, | 5772 | IgnoreLengths = ignoreLengths, |
5833 | RetainOffsets = protectOffsets, | 5773 | RetainOffsets = protectOffsets, |
5834 | SymbolPaths = symbols | 5774 | SymbolPaths = symbols, |
5835 | }; | 5775 | }); |
5836 | |||
5837 | this.Core.AddTuple(tuple); | ||
5838 | 5776 | ||
5839 | if (AssemblyType.NotAnAssembly != assemblyType) | 5777 | if (AssemblyType.NotAnAssembly != assemblyType) |
5840 | { | 5778 | { |
@@ -5850,7 +5788,7 @@ namespace WixToolset.Core | |||
5850 | } | 5788 | } |
5851 | } | 5789 | } |
5852 | 5790 | ||
5853 | this.Core.CreateSimpleReference(sourceLineNumbers, "Media", diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); | 5791 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Media, diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); |
5854 | 5792 | ||
5855 | // If this component does not have a companion file this file is a possible keypath. | 5793 | // If this component does not have a companion file this file is a possible keypath. |
5856 | possibleKeyPath = null; | 5794 | possibleKeyPath = null; |
@@ -5990,13 +5928,13 @@ namespace WixToolset.Core | |||
5990 | 5928 | ||
5991 | if (!this.Core.EncounteredError) | 5929 | if (!this.Core.EncounteredError) |
5992 | { | 5930 | { |
5993 | var tuple = new SignatureTuple(sourceLineNumbers, id) | 5931 | var tuple = this.Core.AddTuple(new SignatureTuple(sourceLineNumbers, id) |
5994 | { | 5932 | { |
5995 | FileName = name ?? shortName, | 5933 | FileName = name ?? shortName, |
5996 | MinVersion = minVersion, | 5934 | MinVersion = minVersion, |
5997 | MaxVersion = maxVersion, | 5935 | MaxVersion = maxVersion, |
5998 | Languages = languages | 5936 | Languages = languages |
5999 | }; | 5937 | }); |
6000 | 5938 | ||
6001 | if (CompilerConstants.IntegerNotSet != minSize) | 5939 | if (CompilerConstants.IntegerNotSet != minSize) |
6002 | { | 5940 | { |
@@ -6018,8 +5956,6 @@ namespace WixToolset.Core | |||
6018 | tuple.MaxDate = maxDate; | 5956 | tuple.MaxDate = maxDate; |
6019 | } | 5957 | } |
6020 | 5958 | ||
6021 | this.Core.AddTuple(tuple); | ||
6022 | |||
6023 | // Create a DrLocator row to associate the file with a directory | 5959 | // Create a DrLocator row to associate the file with a directory |
6024 | // when a different identifier is specified for the FileSearch. | 5960 | // when a different identifier is specified for the FileSearch. |
6025 | if (!isSameId) | 5961 | if (!isSameId) |
@@ -6125,7 +6061,7 @@ namespace WixToolset.Core | |||
6125 | this.ParseBundleExtensionElement(child); | 6061 | this.ParseBundleExtensionElement(child); |
6126 | break; | 6062 | break; |
6127 | case "BundleExtensionRef": | 6063 | case "BundleExtensionRef": |
6128 | this.ParseSimpleRefElement(child, "WixBundleExtension"); | 6064 | this.ParseSimpleRefElement(child, TupleDefinitions.WixBundleExtension); |
6129 | break; | 6065 | break; |
6130 | case "ComplianceCheck": | 6066 | case "ComplianceCheck": |
6131 | this.ParseComplianceCheckElement(child); | 6067 | this.ParseComplianceCheckElement(child); |
@@ -6146,7 +6082,7 @@ namespace WixToolset.Core | |||
6146 | this.ParseCustomActionElement(child); | 6082 | this.ParseCustomActionElement(child); |
6147 | break; | 6083 | break; |
6148 | case "CustomActionRef": | 6084 | case "CustomActionRef": |
6149 | this.ParseSimpleRefElement(child, "CustomAction"); | 6085 | this.ParseSimpleRefElement(child, TupleDefinitions.CustomAction); |
6150 | break; | 6086 | break; |
6151 | case "CustomTable": | 6087 | case "CustomTable": |
6152 | this.ParseCustomTableElement(child); | 6088 | this.ParseCustomTableElement(child); |
@@ -6161,7 +6097,7 @@ namespace WixToolset.Core | |||
6161 | this.ParseEmbeddedChainerElement(child); | 6097 | this.ParseEmbeddedChainerElement(child); |
6162 | break; | 6098 | break; |
6163 | case "EmbeddedChainerRef": | 6099 | case "EmbeddedChainerRef": |
6164 | this.ParseSimpleRefElement(child, "MsiEmbeddedChainer"); | 6100 | this.ParseSimpleRefElement(child, TupleDefinitions.MsiEmbeddedChainer); |
6165 | break; | 6101 | break; |
6166 | case "EnsureTable": | 6102 | case "EnsureTable": |
6167 | this.ParseEnsureTableElement(child); | 6103 | this.ParseEnsureTableElement(child); |
@@ -6210,7 +6146,7 @@ namespace WixToolset.Core | |||
6210 | this.ParsePropertyElement(child); | 6146 | this.ParsePropertyElement(child); |
6211 | break; | 6147 | break; |
6212 | case "PropertyRef": | 6148 | case "PropertyRef": |
6213 | this.ParseSimpleRefElement(child, "Property"); | 6149 | this.ParseSimpleRefElement(child, TupleDefinitions.Property); |
6214 | break; | 6150 | break; |
6215 | case "RelatedBundle": | 6151 | case "RelatedBundle": |
6216 | this.ParseRelatedBundleElement(child); | 6152 | this.ParseRelatedBundleElement(child); |
@@ -6225,7 +6161,7 @@ namespace WixToolset.Core | |||
6225 | this.ParseSetVariableElement(child); | 6161 | this.ParseSetVariableElement(child); |
6226 | break; | 6162 | break; |
6227 | case "SetVariableRef": | 6163 | case "SetVariableRef": |
6228 | this.ParseSimpleRefElement(child, "WixSetVariable"); | 6164 | this.ParseSimpleRefElement(child, TupleDefinitions.WixSetVariable); |
6229 | break; | 6165 | break; |
6230 | case "SFPCatalog": | 6166 | case "SFPCatalog": |
6231 | string parentName = null; | 6167 | string parentName = null; |
@@ -6235,7 +6171,7 @@ namespace WixToolset.Core | |||
6235 | this.ParseUIElement(child); | 6171 | this.ParseUIElement(child); |
6236 | break; | 6172 | break; |
6237 | case "UIRef": | 6173 | case "UIRef": |
6238 | this.ParseSimpleRefElement(child, "WixUI"); | 6174 | this.ParseSimpleRefElement(child, TupleDefinitions.WixUI); |
6239 | break; | 6175 | break; |
6240 | case "Upgrade": | 6176 | case "Upgrade": |
6241 | this.ParseUpgradeElement(child); | 6177 | this.ParseUpgradeElement(child); |
@@ -6555,7 +6491,7 @@ namespace WixToolset.Core | |||
6555 | 6491 | ||
6556 | if (!this.Core.EncounteredError) | 6492 | if (!this.Core.EncounteredError) |
6557 | { | 6493 | { |
6558 | var tuple = new IniFileTuple(sourceLineNumbers, id) | 6494 | this.Core.AddTuple(new IniFileTuple(sourceLineNumbers, id) |
6559 | { | 6495 | { |
6560 | FileName = this.GetMsiFilenameValue(shortName, name), | 6496 | FileName = this.GetMsiFilenameValue(shortName, name), |
6561 | DirProperty = directory, | 6497 | DirProperty = directory, |
@@ -6564,9 +6500,7 @@ namespace WixToolset.Core | |||
6564 | Value = value, | 6500 | Value = value, |
6565 | Action = action.Value, | 6501 | Action = action.Value, |
6566 | ComponentRef = componentId | 6502 | ComponentRef = componentId |
6567 | }; | 6503 | }); |
6568 | |||
6569 | this.Core.AddTuple(tuple); | ||
6570 | } | 6504 | } |
6571 | } | 6505 | } |
6572 | 6506 | ||
@@ -6724,7 +6658,7 @@ namespace WixToolset.Core | |||
6724 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); | 6658 | this.Core.Write(ErrorMessages.TooManySearchElements(sourceLineNumbers, node.Name.LocalName)); |
6725 | } | 6659 | } |
6726 | oneChild = true; | 6660 | oneChild = true; |
6727 | var newId = this.ParseSimpleRefElement(child, "Signature"); // FileSearch signatures override parent signatures | 6661 | var newId = this.ParseSimpleRefElement(child, TupleDefinitions.Signature); // FileSearch signatures override parent signatures |
6728 | id = new Identifier(AccessModifier.Private, newId); | 6662 | id = new Identifier(AccessModifier.Private, newId); |
6729 | signature = null; | 6663 | signature = null; |
6730 | break; | 6664 | break; |
@@ -6741,21 +6675,19 @@ namespace WixToolset.Core | |||
6741 | 6675 | ||
6742 | if (!this.Core.EncounteredError) | 6676 | if (!this.Core.EncounteredError) |
6743 | { | 6677 | { |
6744 | var tuple = new IniLocatorTuple(sourceLineNumbers, id) | 6678 | var tuple = this.Core.AddTuple(new IniLocatorTuple(sourceLineNumbers, id) |
6745 | { | 6679 | { |
6746 | SignatureRef = id.Id, | 6680 | SignatureRef = id.Id, |
6747 | FileName = this.GetMsiFilenameValue(shortName, name), | 6681 | FileName = this.GetMsiFilenameValue(shortName, name), |
6748 | Section = section, | 6682 | Section = section, |
6749 | Key = key, | 6683 | Key = key, |
6750 | Type = type | 6684 | Type = type |
6751 | }; | 6685 | }); |
6752 | 6686 | ||
6753 | if (CompilerConstants.IntegerNotSet != field) | 6687 | if (CompilerConstants.IntegerNotSet != field) |
6754 | { | 6688 | { |
6755 | tuple.Field = field; | 6689 | tuple.Field = field; |
6756 | } | 6690 | } |
6757 | |||
6758 | this.Core.AddTuple(tuple); | ||
6759 | } | 6691 | } |
6760 | 6692 | ||
6761 | return signature; | 6693 | return signature; |
@@ -6779,7 +6711,7 @@ namespace WixToolset.Core | |||
6779 | { | 6711 | { |
6780 | case "Shared": | 6712 | case "Shared": |
6781 | shared = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 6713 | shared = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
6782 | this.Core.CreateSimpleReference(sourceLineNumbers, "Component", shared); | 6714 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Component, shared); |
6783 | break; | 6715 | break; |
6784 | default: | 6716 | default: |
6785 | this.Core.UnexpectedAttribute(node, attrib); | 6717 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -6841,9 +6773,22 @@ namespace WixToolset.Core | |||
6841 | 6773 | ||
6842 | if (!this.Core.EncounteredError) | 6774 | if (!this.Core.EncounteredError) |
6843 | { | 6775 | { |
6844 | var tuple = this.Core.CreateTuple(sourceLineNumbers, "PatchCertificates" == node.Name.LocalName ? TupleDefinitionType.MsiPatchCertificate : TupleDefinitionType.MsiPackageCertificate); | 6776 | if ("PatchCertificates" == node.Name.LocalName) |
6845 | tuple.Set(0, name); | 6777 | { |
6846 | tuple.Set(1, name); | 6778 | this.Core.AddTuple(new MsiPatchCertificateTuple(sourceLineNumbers) |
6779 | { | ||
6780 | PatchCertificate = name, | ||
6781 | DigitalCertificateRef = name, | ||
6782 | }); | ||
6783 | } | ||
6784 | else | ||
6785 | { | ||
6786 | this.Core.AddTuple(new MsiPackageCertificateTuple(sourceLineNumbers) | ||
6787 | { | ||
6788 | PackageCertificate = name, | ||
6789 | DigitalCertificateRef = name, | ||
6790 | }); | ||
6791 | } | ||
6847 | } | 6792 | } |
6848 | break; | 6793 | break; |
6849 | default: | 6794 | default: |
@@ -7109,14 +7054,14 @@ namespace WixToolset.Core | |||
7109 | if (!this.Core.EncounteredError) | 7054 | if (!this.Core.EncounteredError) |
7110 | { | 7055 | { |
7111 | // create the row that performs the upgrade (or downgrade) | 7056 | // create the row that performs the upgrade (or downgrade) |
7112 | var tuple = new UpgradeTuple(sourceLineNumbers) | 7057 | var tuple = this.Core.AddTuple(new UpgradeTuple(sourceLineNumbers) |
7113 | { | 7058 | { |
7114 | UpgradeCode = upgradeCode, | 7059 | UpgradeCode = upgradeCode, |
7115 | Remove = removeFeatures, | 7060 | Remove = removeFeatures, |
7116 | MigrateFeatures = migrateFeatures, | 7061 | MigrateFeatures = migrateFeatures, |
7117 | IgnoreRemoveFailures = ignoreRemoveFailure, | 7062 | IgnoreRemoveFailures = ignoreRemoveFailure, |
7118 | ActionProperty = Common.UpgradeDetectedProperty | 7063 | ActionProperty = Common.UpgradeDetectedProperty |
7119 | }; | 7064 | }); |
7120 | 7065 | ||
7121 | if (allowDowngrades) | 7066 | if (allowDowngrades) |
7122 | { | 7067 | { |
@@ -7131,24 +7076,20 @@ namespace WixToolset.Core | |||
7131 | tuple.VersionMaxInclusive = allowSameVersionUpgrades; | 7076 | tuple.VersionMaxInclusive = allowSameVersionUpgrades; |
7132 | } | 7077 | } |
7133 | 7078 | ||
7134 | this.Core.AddTuple(tuple); | ||
7135 | |||
7136 | // Add launch condition that blocks upgrades | 7079 | // Add launch condition that blocks upgrades |
7137 | if (blockUpgrades) | 7080 | if (blockUpgrades) |
7138 | { | 7081 | { |
7139 | var conditionTuple = new LaunchConditionTuple(sourceLineNumbers) | 7082 | this.Core.AddTuple(new LaunchConditionTuple(sourceLineNumbers) |
7140 | { | 7083 | { |
7141 | Condition = Common.UpgradePreventedCondition, | 7084 | Condition = Common.UpgradePreventedCondition, |
7142 | Description = downgradeErrorMessage | 7085 | Description = downgradeErrorMessage |
7143 | }; | 7086 | }); |
7144 | |||
7145 | this.Core.AddTuple(conditionTuple); | ||
7146 | } | 7087 | } |
7147 | 7088 | ||
7148 | // now create the Upgrade row and launch conditions to prevent downgrades (unless explicitly permitted) | 7089 | // now create the Upgrade row and launch conditions to prevent downgrades (unless explicitly permitted) |
7149 | if (!allowDowngrades) | 7090 | if (!allowDowngrades) |
7150 | { | 7091 | { |
7151 | var upgradeTuple = new UpgradeTuple(sourceLineNumbers) | 7092 | this.Core.AddTuple(new UpgradeTuple(sourceLineNumbers) |
7152 | { | 7093 | { |
7153 | UpgradeCode = upgradeCode, | 7094 | UpgradeCode = upgradeCode, |
7154 | VersionMin = productVersion, | 7095 | VersionMin = productVersion, |
@@ -7156,17 +7097,13 @@ namespace WixToolset.Core | |||
7156 | OnlyDetect = true, | 7097 | OnlyDetect = true, |
7157 | IgnoreRemoveFailures = ignoreRemoveFailure, | 7098 | IgnoreRemoveFailures = ignoreRemoveFailure, |
7158 | ActionProperty = Common.DowngradeDetectedProperty | 7099 | ActionProperty = Common.DowngradeDetectedProperty |
7159 | }; | 7100 | }); |
7160 | |||
7161 | this.Core.AddTuple(upgradeTuple); | ||
7162 | 7101 | ||
7163 | var conditionTuple = new LaunchConditionTuple(sourceLineNumbers) | 7102 | this.Core.AddTuple(new LaunchConditionTuple(sourceLineNumbers) |
7164 | { | 7103 | { |
7165 | Condition = Common.DowngradePreventedCondition, | 7104 | Condition = Common.DowngradePreventedCondition, |
7166 | Description = downgradeErrorMessage | 7105 | Description = downgradeErrorMessage |
7167 | }; | 7106 | }); |
7168 | |||
7169 | this.Core.AddTuple(conditionTuple); | ||
7170 | } | 7107 | } |
7171 | 7108 | ||
7172 | // finally, schedule RemoveExistingProducts | 7109 | // finally, schedule RemoveExistingProducts |
@@ -7232,7 +7169,7 @@ namespace WixToolset.Core | |||
7232 | break; | 7169 | break; |
7233 | case "DiskPrompt": | 7170 | case "DiskPrompt": |
7234 | diskPrompt = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 7171 | diskPrompt = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
7235 | this.Core.CreateSimpleReference(sourceLineNumbers, "Property", "DiskPrompt"); // ensure the output has a DiskPrompt Property defined | 7172 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Property, "DiskPrompt"); // ensure the output has a DiskPrompt Property defined |
7236 | break; | 7173 | break; |
7237 | case "EmbedCab": | 7174 | case "EmbedCab": |
7238 | embedCab = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 7175 | embedCab = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -7364,7 +7301,7 @@ namespace WixToolset.Core | |||
7364 | // add the row to the section | 7301 | // add the row to the section |
7365 | if (!this.Core.EncounteredError) | 7302 | if (!this.Core.EncounteredError) |
7366 | { | 7303 | { |
7367 | var tuple = new MediaTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, id)) | 7304 | this.Core.AddTuple(new MediaTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, id)) |
7368 | { | 7305 | { |
7369 | DiskId = id, | 7306 | DiskId = id, |
7370 | DiskPrompt = diskPrompt, | 7307 | DiskPrompt = diskPrompt, |
@@ -7373,9 +7310,7 @@ namespace WixToolset.Core | |||
7373 | Source = source, // the Source column is only set when creating a patch | 7310 | Source = source, // the Source column is only set when creating a patch |
7374 | CompressionLevel = compressionLevel, | 7311 | CompressionLevel = compressionLevel, |
7375 | Layout = layout | 7312 | Layout = layout |
7376 | }; | 7313 | }); |
7377 | |||
7378 | this.Core.AddTuple(tuple); | ||
7379 | 7314 | ||
7380 | if (null != symbols) | 7315 | if (null != symbols) |
7381 | { | 7316 | { |
@@ -7441,7 +7376,7 @@ namespace WixToolset.Core | |||
7441 | break; | 7376 | break; |
7442 | case "DiskPrompt": | 7377 | case "DiskPrompt": |
7443 | diskPrompt = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 7378 | diskPrompt = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
7444 | this.Core.CreateSimpleReference(sourceLineNumbers, "Property", "DiskPrompt"); // ensure the output has a DiskPrompt Property defined | 7379 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Property, "DiskPrompt"); // ensure the output has a DiskPrompt Property defined |
7445 | this.Core.Write(WarningMessages.ReservedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName)); | 7380 | this.Core.Write(WarningMessages.ReservedAttribute(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName)); |
7446 | break; | 7381 | break; |
7447 | case "EmbedCab": | 7382 | case "EmbedCab": |
@@ -7480,7 +7415,7 @@ namespace WixToolset.Core | |||
7480 | DiskId = 1 | 7415 | DiskId = 1 |
7481 | }); | 7416 | }); |
7482 | 7417 | ||
7483 | var tuple = new WixMediaTemplateTuple(sourceLineNumbers) | 7418 | this.Core.AddTuple(new WixMediaTemplateTuple(sourceLineNumbers) |
7484 | { | 7419 | { |
7485 | CabinetTemplate = cabinetTemplate, | 7420 | CabinetTemplate = cabinetTemplate, |
7486 | VolumeLabel = volumeLabel, | 7421 | VolumeLabel = volumeLabel, |
@@ -7488,7 +7423,7 @@ namespace WixToolset.Core | |||
7488 | MaximumUncompressedMediaSize = maximumUncompressedMediaSize, | 7423 | MaximumUncompressedMediaSize = maximumUncompressedMediaSize, |
7489 | MaximumCabinetSizeForLargeFileSplitting = maximumCabinetSizeForLargeFileSplitting, | 7424 | MaximumCabinetSizeForLargeFileSplitting = maximumCabinetSizeForLargeFileSplitting, |
7490 | CompressionLevel = compressionLevel | 7425 | CompressionLevel = compressionLevel |
7491 | }; | 7426 | }); |
7492 | 7427 | ||
7493 | //else | 7428 | //else |
7494 | //{ | 7429 | //{ |
@@ -7499,8 +7434,6 @@ namespace WixToolset.Core | |||
7499 | //{ | 7434 | //{ |
7500 | // mediaTemplateRow.MaximumCabinetSizeForLargeFileSplitting = 0; // Default value of 0 corresponds to max size of 2048 MB (i.e. 2 GB) | 7435 | // mediaTemplateRow.MaximumCabinetSizeForLargeFileSplitting = 0; // Default value of 0 corresponds to max size of 2048 MB (i.e. 2 GB) |
7501 | //} | 7436 | //} |
7502 | |||
7503 | this.Core.AddTuple(tuple); | ||
7504 | } | 7437 | } |
7505 | } | 7438 | } |
7506 | 7439 | ||
@@ -7530,7 +7463,7 @@ namespace WixToolset.Core | |||
7530 | break; | 7463 | break; |
7531 | case "DiskId": | 7464 | case "DiskId": |
7532 | diskId = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 1, Int16.MaxValue); | 7465 | diskId = this.Core.GetAttributeIntegerValue(sourceLineNumbers, attrib, 1, Int16.MaxValue); |
7533 | this.Core.CreateSimpleReference(sourceLineNumbers, "Media", diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); | 7466 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Media, diskId.ToString(CultureInfo.InvariantCulture.NumberFormat)); |
7534 | break; | 7467 | break; |
7535 | case "FileCompression": | 7468 | case "FileCompression": |
7536 | var compress = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 7469 | var compress = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -7604,7 +7537,7 @@ namespace WixToolset.Core | |||
7604 | 7537 | ||
7605 | if (!this.Core.EncounteredError) | 7538 | if (!this.Core.EncounteredError) |
7606 | { | 7539 | { |
7607 | var tuple = new WixMergeTuple(sourceLineNumbers, id) | 7540 | var tuple = this.Core.AddTuple(new WixMergeTuple(sourceLineNumbers, id) |
7608 | { | 7541 | { |
7609 | DirectoryRef = directoryId, | 7542 | DirectoryRef = directoryId, |
7610 | SourceFile = sourceFile, | 7543 | SourceFile = sourceFile, |
@@ -7612,11 +7545,9 @@ namespace WixToolset.Core | |||
7612 | ConfigurationData = configData, | 7545 | ConfigurationData = configData, |
7613 | FileAttributes = attributes, | 7546 | FileAttributes = attributes, |
7614 | FeatureRef = Guid.Empty.ToString("B") | 7547 | FeatureRef = Guid.Empty.ToString("B") |
7615 | }; | 7548 | }); |
7616 | 7549 | ||
7617 | tuple.Set((int)WixMergeTupleFields.Language, language); | 7550 | tuple.Set((int)WixMergeTupleFields.Language, language); |
7618 | |||
7619 | this.Core.AddTuple(tuple); | ||
7620 | } | 7551 | } |
7621 | } | 7552 | } |
7622 | 7553 | ||
@@ -7701,7 +7632,7 @@ namespace WixToolset.Core | |||
7701 | { | 7632 | { |
7702 | case "Id": | 7633 | case "Id": |
7703 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 7634 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
7704 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixMerge", id); | 7635 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixMerge, id); |
7705 | break; | 7636 | break; |
7706 | case "Primary": | 7637 | case "Primary": |
7707 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); | 7638 | primary = this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib); |
@@ -7794,14 +7725,12 @@ namespace WixToolset.Core | |||
7794 | 7725 | ||
7795 | if (!this.Core.EncounteredError) | 7726 | if (!this.Core.EncounteredError) |
7796 | { | 7727 | { |
7797 | var tuple = new MIMETuple(sourceLineNumbers, new Identifier(AccessModifier.Private, contentType)) | 7728 | this.Core.AddTuple(new MIMETuple(sourceLineNumbers, new Identifier(AccessModifier.Private, contentType)) |
7798 | { | 7729 | { |
7799 | ContentType = contentType, | 7730 | ContentType = contentType, |
7800 | ExtensionRef = extension, | 7731 | ExtensionRef = extension, |
7801 | CLSID = classId | 7732 | CLSID = classId |
7802 | }; | 7733 | }); |
7803 | |||
7804 | this.Core.AddTuple(tuple); | ||
7805 | } | 7734 | } |
7806 | } | 7735 | } |
7807 | else if (YesNoType.No == advertise) | 7736 | else if (YesNoType.No == advertise) |
@@ -7902,12 +7831,10 @@ namespace WixToolset.Core | |||
7902 | { | 7831 | { |
7903 | if (!this.Core.EncounteredError) | 7832 | if (!this.Core.EncounteredError) |
7904 | { | 7833 | { |
7905 | var tuple = new PropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, name)) | 7834 | this.Core.AddTuple(new PropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, name)) |
7906 | { | 7835 | { |
7907 | Value = value | 7836 | Value = value |
7908 | }; | 7837 | }); |
7909 | |||
7910 | this.Core.AddTuple(tuple); | ||
7911 | } | 7838 | } |
7912 | } | 7839 | } |
7913 | 7840 | ||
@@ -8063,13 +7990,11 @@ namespace WixToolset.Core | |||
8063 | 7990 | ||
8064 | if (!this.Core.EncounteredError) | 7991 | if (!this.Core.EncounteredError) |
8065 | { | 7992 | { |
8066 | var tuple = new WixPatchRefTuple(sourceLineNumbers) | 7993 | this.Core.AddTuple(new WixPatchRefTuple(sourceLineNumbers) |
8067 | { | 7994 | { |
8068 | Table = "*", | 7995 | Table = "*", |
8069 | PrimaryKeys = "*" | 7996 | PrimaryKeys = "*", |
8070 | }; | 7997 | }); |
8071 | |||
8072 | this.Core.AddTuple(tuple); | ||
8073 | } | 7998 | } |
8074 | } | 7999 | } |
8075 | 8000 | ||
@@ -8112,13 +8037,11 @@ namespace WixToolset.Core | |||
8112 | 8037 | ||
8113 | if (!this.Core.EncounteredError) | 8038 | if (!this.Core.EncounteredError) |
8114 | { | 8039 | { |
8115 | var tuple = new WixPatchRefTuple(sourceLineNumbers) | 8040 | this.Core.AddTuple(new WixPatchRefTuple(sourceLineNumbers) |
8116 | { | 8041 | { |
8117 | Table = tableName, | 8042 | Table = tableName, |
8118 | PrimaryKeys = id | 8043 | PrimaryKeys = id |
8119 | }; | 8044 | }); |
8120 | |||
8121 | this.Core.AddTuple(tuple); | ||
8122 | } | 8045 | } |
8123 | } | 8046 | } |
8124 | 8047 | ||
@@ -8232,16 +8155,14 @@ namespace WixToolset.Core | |||
8232 | 8155 | ||
8233 | if (!this.Core.EncounteredError) | 8156 | if (!this.Core.EncounteredError) |
8234 | { | 8157 | { |
8235 | var tuple = new WixPatchBaselineTuple(sourceLineNumbers, id) | 8158 | this.Core.AddTuple(new WixPatchBaselineTuple(sourceLineNumbers, id) |
8236 | { | 8159 | { |
8237 | DiskId = diskId ?? 1, | 8160 | DiskId = diskId ?? 1, |
8238 | ValidationFlags = validationFlags, | 8161 | ValidationFlags = validationFlags, |
8239 | BaselineFile = new IntermediateFieldPathValue { Path = baselineFile }, | 8162 | BaselineFile = new IntermediateFieldPathValue { Path = baselineFile }, |
8240 | UpdateFile = new IntermediateFieldPathValue { Path = updateFile }, | 8163 | UpdateFile = new IntermediateFieldPathValue { Path = updateFile }, |
8241 | TransformFile = new IntermediateFieldPathValue { Path = transformFile } | 8164 | TransformFile = new IntermediateFieldPathValue { Path = transformFile }, |
8242 | }; | 8165 | }); |
8243 | |||
8244 | this.Core.AddTuple(tuple); | ||
8245 | } | 8166 | } |
8246 | } | 8167 | } |
8247 | 8168 | ||