diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2020-04-11 21:49:09 +1000 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2020-04-12 12:46:21 +1000 |
commit | 6d8b6f79b44b6a41a630aa3aad5a3c7f16701798 (patch) | |
tree | b82ede9934cb7777a19e74a912c68481e76c21cd /src | |
parent | df69d4172d3117d8b66ba51fa5ae7f4be538700d (diff) | |
download | wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.tar.gz wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.tar.bz2 wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.zip |
General cleanup.
Try not to send strings to specify the tuple or table.
Try to avoid using the Set method on tuples.
Always create new tuples and add them to the section in the same line.
Diffstat (limited to 'src')
27 files changed, 660 insertions, 891 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs b/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs index 7f36dbcc..e228b296 100644 --- a/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs +++ b/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs | |||
@@ -56,14 +56,14 @@ namespace WixToolset.Core.Burn.Bind | |||
56 | 56 | ||
57 | if (this.Facades.TryGetValue(packageId, out var facade)) | 57 | if (this.Facades.TryGetValue(packageId, out var facade)) |
58 | { | 58 | { |
59 | var dependency = new ProvidesDependencyTuple(wixDependencyProviderTuple.SourceLineNumbers, wixDependencyProviderTuple.Id) | 59 | var dependency = this.Section.AddTuple(new ProvidesDependencyTuple(wixDependencyProviderTuple.SourceLineNumbers, wixDependencyProviderTuple.Id) |
60 | { | 60 | { |
61 | PackageRef = packageId, | 61 | PackageRef = packageId, |
62 | Key = wixDependencyProviderTuple.ProviderKey, | 62 | Key = wixDependencyProviderTuple.ProviderKey, |
63 | Version = wixDependencyProviderTuple.Version, | 63 | Version = wixDependencyProviderTuple.Version, |
64 | DisplayName = wixDependencyProviderTuple.DisplayName, | 64 | DisplayName = wixDependencyProviderTuple.DisplayName, |
65 | Attributes = (int)wixDependencyProviderTuple.Attributes | 65 | Attributes = (int)wixDependencyProviderTuple.Attributes |
66 | }; | 66 | }); |
67 | 67 | ||
68 | if (String.IsNullOrEmpty(dependency.Key)) | 68 | if (String.IsNullOrEmpty(dependency.Key)) |
69 | { | 69 | { |
@@ -94,8 +94,6 @@ namespace WixToolset.Core.Burn.Bind | |||
94 | { | 94 | { |
95 | dependency.DisplayName = facade.PackageTuple.DisplayName; | 95 | dependency.DisplayName = facade.PackageTuple.DisplayName; |
96 | } | 96 | } |
97 | |||
98 | this.Section.Tuples.Add(dependency); | ||
99 | } | 97 | } |
100 | } | 98 | } |
101 | 99 | ||
@@ -121,15 +119,13 @@ namespace WixToolset.Core.Burn.Bind | |||
121 | 119 | ||
122 | if (!String.IsNullOrEmpty(key) && !this.DependencyTuplesByKey.ContainsKey(key)) | 120 | if (!String.IsNullOrEmpty(key) && !this.DependencyTuplesByKey.ContainsKey(key)) |
123 | { | 121 | { |
124 | var dependency = new ProvidesDependencyTuple(facade.PackageTuple.SourceLineNumbers, facade.PackageTuple.Id) | 122 | var dependency = this.Section.AddTuple(new ProvidesDependencyTuple(facade.PackageTuple.SourceLineNumbers, facade.PackageTuple.Id) |
125 | { | 123 | { |
126 | PackageRef = facade.PackageId, | 124 | PackageRef = facade.PackageId, |
127 | Key = key, | 125 | Key = key, |
128 | Version = facade.PackageTuple.Version, | 126 | Version = facade.PackageTuple.Version, |
129 | DisplayName = facade.PackageTuple.DisplayName | 127 | DisplayName = facade.PackageTuple.DisplayName |
130 | }; | 128 | }); |
131 | |||
132 | this.Section.Tuples.Add(dependency); | ||
133 | 129 | ||
134 | this.DependencyTuplesByKey.Add(dependency.Key, dependency); | 130 | this.DependencyTuplesByKey.Add(dependency.Key, dependency); |
135 | } | 131 | } |
diff --git a/src/WixToolset.Core.Burn/Bundles/AutomaticallySlipstreamPatchesCommand.cs b/src/WixToolset.Core.Burn/Bundles/AutomaticallySlipstreamPatchesCommand.cs index b3a29e15..6e08c68e 100644 --- a/src/WixToolset.Core.Burn/Bundles/AutomaticallySlipstreamPatchesCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/AutomaticallySlipstreamPatchesCommand.cs | |||
@@ -102,17 +102,12 @@ namespace WixToolset.Core.Burn.Bundles | |||
102 | 102 | ||
103 | if (slipstreamMspIds.Add(id.Id)) | 103 | if (slipstreamMspIds.Add(id.Id)) |
104 | { | 104 | { |
105 | var slipstreamTuple = new WixBundleSlipstreamMspTuple(patchTargetCode.SourceLineNumbers) | 105 | this.Section.AddTuple(new WixBundleSlipstreamMspTuple(patchTargetCode.SourceLineNumbers) |
106 | { | 106 | { |
107 | TargetPackageRef = msiPackage.Id.Id, | 107 | TargetPackageRef = msiPackage.Id.Id, |
108 | MspPackageRef = patchTargetCode.PackageRef | 108 | MspPackageRef = patchTargetCode.PackageRef, |
109 | }; | 109 | }); |
110 | 110 | ||
111 | //var slipstreamMspRow = SlipstreamMspTable.CreateRow(tuple.SourceLineNumbers, false); | ||
112 | //slipstreamMspRow[0] = msi.ChainPackageId; | ||
113 | //slipstreamMspRow[1] = tuple.MspPackageId; | ||
114 | |||
115 | this.Section.Tuples.Add(slipstreamTuple); | ||
116 | return true; | 111 | return true; |
117 | } | 112 | } |
118 | 113 | ||
diff --git a/src/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs b/src/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs index 1ef5bb2e..5ef75b3e 100644 --- a/src/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/CreateBootstrapperApplicationManifestCommand.cs | |||
@@ -285,7 +285,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
285 | { | 285 | { |
286 | var generatedId = Common.GenerateIdentifier("ux", BurnCommon.BADataFileName); | 286 | var generatedId = Common.GenerateIdentifier("ux", BurnCommon.BADataFileName); |
287 | 287 | ||
288 | var tuple = new WixBundlePayloadTuple(this.BundleTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) | 288 | var tuple = this.Section.AddTuple(new WixBundlePayloadTuple(this.BundleTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) |
289 | { | 289 | { |
290 | Name = BurnCommon.BADataFileName, | 290 | Name = BurnCommon.BADataFileName, |
291 | SourceFile = new IntermediateFieldPathValue { Path = baManifestPath }, | 291 | SourceFile = new IntermediateFieldPathValue { Path = baManifestPath }, |
@@ -294,7 +294,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
294 | ContainerRef = BurnConstants.BurnUXContainerName, | 294 | ContainerRef = BurnConstants.BurnUXContainerName, |
295 | EmbeddedId = String.Format(CultureInfo.InvariantCulture, BurnCommon.BurnUXContainerEmbeddedIdFormat, this.LastUXPayloadIndex), | 295 | EmbeddedId = String.Format(CultureInfo.InvariantCulture, BurnCommon.BurnUXContainerEmbeddedIdFormat, this.LastUXPayloadIndex), |
296 | Packaging = PackagingType.Embedded, | 296 | Packaging = PackagingType.Embedded, |
297 | }; | 297 | }); |
298 | 298 | ||
299 | var fileInfo = new FileInfo(baManifestPath); | 299 | var fileInfo = new FileInfo(baManifestPath); |
300 | 300 | ||
@@ -302,8 +302,6 @@ namespace WixToolset.Core.Burn.Bundles | |||
302 | 302 | ||
303 | tuple.Hash = BundleHashAlgorithm.Hash(fileInfo); | 303 | tuple.Hash = BundleHashAlgorithm.Hash(fileInfo); |
304 | 304 | ||
305 | this.Section.Tuples.Add(tuple); | ||
306 | |||
307 | return tuple; | 305 | return tuple; |
308 | } | 306 | } |
309 | } | 307 | } |
diff --git a/src/WixToolset.Core.Burn/Bundles/CreateBundleExtensionManifestCommand.cs b/src/WixToolset.Core.Burn/Bundles/CreateBundleExtensionManifestCommand.cs index b608c03d..73ad5174 100644 --- a/src/WixToolset.Core.Burn/Bundles/CreateBundleExtensionManifestCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/CreateBundleExtensionManifestCommand.cs | |||
@@ -124,7 +124,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
124 | { | 124 | { |
125 | var generatedId = Common.GenerateIdentifier("ux", BurnCommon.BundleExtensionDataFileName); | 125 | var generatedId = Common.GenerateIdentifier("ux", BurnCommon.BundleExtensionDataFileName); |
126 | 126 | ||
127 | var tuple = new WixBundlePayloadTuple(this.BundleTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) | 127 | var tuple = this.Section.AddTuple(new WixBundlePayloadTuple(this.BundleTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) |
128 | { | 128 | { |
129 | Name = BurnCommon.BundleExtensionDataFileName, | 129 | Name = BurnCommon.BundleExtensionDataFileName, |
130 | SourceFile = new IntermediateFieldPathValue { Path = bextManifestPath }, | 130 | SourceFile = new IntermediateFieldPathValue { Path = bextManifestPath }, |
@@ -133,7 +133,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
133 | ContainerRef = BurnConstants.BurnUXContainerName, | 133 | ContainerRef = BurnConstants.BurnUXContainerName, |
134 | EmbeddedId = String.Format(CultureInfo.InvariantCulture, BurnCommon.BurnUXContainerEmbeddedIdFormat, this.LastUXPayloadIndex), | 134 | EmbeddedId = String.Format(CultureInfo.InvariantCulture, BurnCommon.BurnUXContainerEmbeddedIdFormat, this.LastUXPayloadIndex), |
135 | Packaging = PackagingType.Embedded, | 135 | Packaging = PackagingType.Embedded, |
136 | }; | 136 | }); |
137 | 137 | ||
138 | var fileInfo = new FileInfo(bextManifestPath); | 138 | var fileInfo = new FileInfo(bextManifestPath); |
139 | 139 | ||
@@ -141,8 +141,6 @@ namespace WixToolset.Core.Burn.Bundles | |||
141 | 141 | ||
142 | tuple.Hash = BundleHashAlgorithm.Hash(fileInfo); | 142 | tuple.Hash = BundleHashAlgorithm.Hash(fileInfo); |
143 | 143 | ||
144 | this.Section.Tuples.Add(tuple); | ||
145 | |||
146 | return tuple; | 144 | return tuple; |
147 | } | 145 | } |
148 | } | 146 | } |
diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs index d800a19a..0754fbc6 100644 --- a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs | |||
@@ -283,7 +283,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
283 | attributes |= (recordAttributes & WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive) == WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive ? WixBundleRelatedPackageAttributes.MaxInclusive : 0; | 283 | attributes |= (recordAttributes & WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive) == WindowsInstallerConstants.MsidbUpgradeAttributesVersionMaxInclusive ? WixBundleRelatedPackageAttributes.MaxInclusive : 0; |
284 | attributes |= (recordAttributes & WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive) == WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive ? WixBundleRelatedPackageAttributes.LangInclusive : 0; | 284 | attributes |= (recordAttributes & WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive) == WindowsInstallerConstants.MsidbUpgradeAttributesLanguagesExclusive ? WixBundleRelatedPackageAttributes.LangInclusive : 0; |
285 | 285 | ||
286 | var related = new WixBundleRelatedPackageTuple(this.Facade.PackageTuple.SourceLineNumbers) | 286 | this.Section.AddTuple(new WixBundleRelatedPackageTuple(this.Facade.PackageTuple.SourceLineNumbers) |
287 | { | 287 | { |
288 | PackageRef = this.Facade.PackageId, | 288 | PackageRef = this.Facade.PackageId, |
289 | RelatedId = record.GetString(1), | 289 | RelatedId = record.GetString(1), |
@@ -291,7 +291,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
291 | MaxVersion = record.GetString(3), | 291 | MaxVersion = record.GetString(3), |
292 | Languages = record.GetString(4), | 292 | Languages = record.GetString(4), |
293 | Attributes = attributes, | 293 | Attributes = attributes, |
294 | }; | 294 | }); |
295 | } | 295 | } |
296 | } | 296 | } |
297 | } | 297 | } |
@@ -358,7 +358,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
358 | } | 358 | } |
359 | } | 359 | } |
360 | 360 | ||
361 | var feature = new WixBundleMsiFeatureTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, this.Facade.PackageId, featureName)) | 361 | this.Section.AddTuple(new WixBundleMsiFeatureTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, this.Facade.PackageId, featureName)) |
362 | { | 362 | { |
363 | PackageRef = this.Facade.PackageId, | 363 | PackageRef = this.Facade.PackageId, |
364 | Name = featureName, | 364 | Name = featureName, |
@@ -370,7 +370,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
370 | Directory = allFeaturesResultRecord.GetString(7), | 370 | Directory = allFeaturesResultRecord.GetString(7), |
371 | Attributes = allFeaturesResultRecord.GetInteger(8), | 371 | Attributes = allFeaturesResultRecord.GetInteger(8), |
372 | Size = size | 372 | Size = size |
373 | }; | 373 | }); |
374 | } | 374 | } |
375 | } | 375 | } |
376 | } | 376 | } |
@@ -397,7 +397,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
397 | var generatedId = Common.GenerateIdentifier("cab", packagePayload.Id.Id, cabinet); | 397 | var generatedId = Common.GenerateIdentifier("cab", packagePayload.Id.Id, cabinet); |
398 | var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageTuple.SourceLineNumbers, BindStage.Normal); | 398 | var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, cabinet, "Cabinet", this.Facade.PackageTuple.SourceLineNumbers, BindStage.Normal); |
399 | 399 | ||
400 | var tuple = new WixBundlePayloadTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) | 400 | this.Section.AddTuple(new WixBundlePayloadTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) |
401 | { | 401 | { |
402 | Name = cabinetName, | 402 | Name = cabinetName, |
403 | SourceFile = new IntermediateFieldPathValue { Path = payloadSourceFile }, | 403 | SourceFile = new IntermediateFieldPathValue { Path = payloadSourceFile }, |
@@ -409,9 +409,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
409 | EnableSignatureValidation = packagePayload.EnableSignatureValidation, | 409 | EnableSignatureValidation = packagePayload.EnableSignatureValidation, |
410 | Packaging = packagePayload.Packaging, | 410 | Packaging = packagePayload.Packaging, |
411 | ParentPackagePayloadRef = packagePayload.Id.Id, | 411 | ParentPackagePayloadRef = packagePayload.Id.Id, |
412 | }; | 412 | }); |
413 | |||
414 | this.Section.Tuples.Add(tuple); | ||
415 | } | 413 | } |
416 | } | 414 | } |
417 | } | 415 | } |
@@ -477,7 +475,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
477 | var generatedId = Common.GenerateIdentifier("f", packagePayload.Id.Id, record.GetString(2)); | 475 | var generatedId = Common.GenerateIdentifier("f", packagePayload.Id.Id, record.GetString(2)); |
478 | var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageTuple.SourceLineNumbers, BindStage.Normal); | 476 | var payloadSourceFile = this.ResolveRelatedFile(packagePayload.SourceFile.Path, packagePayload.UnresolvedSourceFile, fileSourcePath, "File", this.Facade.PackageTuple.SourceLineNumbers, BindStage.Normal); |
479 | 477 | ||
480 | var tuple = new WixBundlePayloadTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) | 478 | this.Section.AddTuple(new WixBundlePayloadTuple(this.Facade.PackageTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, generatedId)) |
481 | { | 479 | { |
482 | Name = name, | 480 | Name = name, |
483 | SourceFile = new IntermediateFieldPathValue { Path = payloadSourceFile }, | 481 | SourceFile = new IntermediateFieldPathValue { Path = payloadSourceFile }, |
@@ -489,9 +487,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
489 | EnableSignatureValidation = packagePayload.EnableSignatureValidation, | 487 | EnableSignatureValidation = packagePayload.EnableSignatureValidation, |
490 | Packaging = packagePayload.Packaging, | 488 | Packaging = packagePayload.Packaging, |
491 | ParentPackagePayloadRef = packagePayload.Id.Id, | 489 | ParentPackagePayloadRef = packagePayload.Id.Id, |
492 | }; | 490 | }); |
493 | |||
494 | this.Section.Tuples.Add(tuple); | ||
495 | } | 491 | } |
496 | } | 492 | } |
497 | 493 | ||
@@ -506,14 +502,12 @@ namespace WixToolset.Core.Burn.Bundles | |||
506 | 502 | ||
507 | private void AddMsiProperty(WixBundleMsiPackageTuple msiPackage, string name, string value) | 503 | private void AddMsiProperty(WixBundleMsiPackageTuple msiPackage, string name, string value) |
508 | { | 504 | { |
509 | var tuple = new WixBundleMsiPropertyTuple(msiPackage.SourceLineNumbers, new Identifier(AccessModifier.Private, msiPackage.Id.Id, name)) | 505 | this.Section.AddTuple(new WixBundleMsiPropertyTuple(msiPackage.SourceLineNumbers, new Identifier(AccessModifier.Private, msiPackage.Id.Id, name)) |
510 | { | 506 | { |
511 | PackageRef = msiPackage.Id.Id, | 507 | PackageRef = msiPackage.Id.Id, |
512 | Name = name, | 508 | Name = name, |
513 | Value = value | 509 | Value = value, |
514 | }; | 510 | }); |
515 | |||
516 | this.Section.Tuples.Add(tuple); | ||
517 | } | 511 | } |
518 | 512 | ||
519 | private void ImportDependencyProviders(WixBundleMsiPackageTuple msiPackage, Dtf.Database db) | 513 | private void ImportDependencyProviders(WixBundleMsiPackageTuple msiPackage, Dtf.Database db) |
@@ -535,7 +529,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
535 | } | 529 | } |
536 | 530 | ||
537 | // Import the provider key and attributes. | 531 | // Import the provider key and attributes. |
538 | var tuple = new ProvidesDependencyTuple(msiPackage.SourceLineNumbers) | 532 | this.Section.AddTuple(new ProvidesDependencyTuple(msiPackage.SourceLineNumbers) |
539 | { | 533 | { |
540 | PackageRef = msiPackage.Id.Id, | 534 | PackageRef = msiPackage.Id.Id, |
541 | Key = record.GetString(1), | 535 | Key = record.GetString(1), |
@@ -543,9 +537,7 @@ namespace WixToolset.Core.Burn.Bundles | |||
543 | DisplayName = record.GetString(3) ?? this.Facade.PackageTuple.DisplayName, | 537 | DisplayName = record.GetString(3) ?? this.Facade.PackageTuple.DisplayName, |
544 | Attributes = record.GetInteger(4), | 538 | Attributes = record.GetInteger(4), |
545 | Imported = true | 539 | Imported = true |
546 | }; | 540 | }); |
547 | |||
548 | this.Section.Tuples.Add(tuple); | ||
549 | } | 541 | } |
550 | } | 542 | } |
551 | } | 543 | } |
diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessMspPackageCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessMspPackageCommand.cs index dc832d40..5acffe33 100644 --- a/src/WixToolset.Core.Burn/Bundles/ProcessMspPackageCommand.cs +++ b/src/WixToolset.Core.Burn/Bundles/ProcessMspPackageCommand.cs | |||
@@ -127,14 +127,12 @@ namespace WixToolset.Core.Burn.Bundles | |||
127 | 127 | ||
128 | if (uniqueTargetCodes.Add(targetCode)) | 128 | if (uniqueTargetCodes.Add(targetCode)) |
129 | { | 129 | { |
130 | var tuple = new WixBundlePatchTargetCodeTuple(packagePayload.SourceLineNumbers) | 130 | this.Section.AddTuple(new WixBundlePatchTargetCodeTuple(packagePayload.SourceLineNumbers) |
131 | { | 131 | { |
132 | PackageRef = packagePayload.Id.Id, | 132 | PackageRef = packagePayload.Id.Id, |
133 | TargetCode = targetCode, | 133 | TargetCode = targetCode, |
134 | Attributes = attributes | 134 | Attributes = attributes |
135 | }; | 135 | }); |
136 | |||
137 | this.Section.Tuples.Add(tuple); | ||
138 | } | 136 | } |
139 | } | 137 | } |
140 | 138 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs index 6cc4153f..ba844da4 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AddCreateFoldersCommand.cs | |||
@@ -26,13 +26,11 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
26 | { | 26 | { |
27 | if (!createFolderTuplesByComponentRef.Contains(componentTuple.Id.Id)) | 27 | if (!createFolderTuplesByComponentRef.Contains(componentTuple.Id.Id)) |
28 | { | 28 | { |
29 | var createFolderTuple = new CreateFolderTuple(componentTuple.SourceLineNumbers) | 29 | this.Section.AddTuple(new CreateFolderTuple(componentTuple.SourceLineNumbers) |
30 | { | 30 | { |
31 | DirectoryRef = componentTuple.DirectoryRef, | 31 | DirectoryRef = componentTuple.DirectoryRef, |
32 | ComponentRef = componentTuple.Id.Id, | 32 | ComponentRef = componentTuple.Id.Id, |
33 | }; | 33 | }); |
34 | |||
35 | this.Section.Tuples.Add(createFolderTuple); | ||
36 | } | 34 | } |
37 | } | 35 | } |
38 | } | 36 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs index 2bfd587f..ae7e5788 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AssignMediaCommand.cs | |||
@@ -71,12 +71,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
71 | // When building merge module, all the files go to "#MergeModule.CABinet". | 71 | // When building merge module, all the files go to "#MergeModule.CABinet". |
72 | if (SectionType.Module == this.Section.Type) | 72 | if (SectionType.Module == this.Section.Type) |
73 | { | 73 | { |
74 | var mergeModuleMediaRow = new MediaTuple(); | 74 | var mergeModuleMediaTuple = this.Section.AddTuple(new MediaTuple |
75 | mergeModuleMediaRow.Cabinet = "#MergeModule.CABinet"; | 75 | { |
76 | 76 | Cabinet = "#MergeModule.CABinet", | |
77 | this.Section.Tuples.Add(mergeModuleMediaRow); | 77 | }); |
78 | 78 | ||
79 | filesByCabinetMedia.Add(mergeModuleMediaRow, new List<FileFacade>(this.FileFacades)); | 79 | filesByCabinetMedia.Add(mergeModuleMediaTuple, new List<FileFacade>(this.FileFacades)); |
80 | } | 80 | } |
81 | else if (mediaTemplateTable.Count == 0) | 81 | else if (mediaTemplateTable.Count == 0) |
82 | { | 82 | { |
@@ -212,13 +212,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
212 | // If there are uncompressed files and no MediaRow, create a default one. | 212 | // If there are uncompressed files and no MediaRow, create a default one. |
213 | if (uncompressedFiles.Count > 0 && !this.Section.Tuples.OfType<MediaTuple>().Any()) | 213 | if (uncompressedFiles.Count > 0 && !this.Section.Tuples.OfType<MediaTuple>().Any()) |
214 | { | 214 | { |
215 | var defaultMediaRow = new MediaTuple(null, new Identifier(AccessModifier.Private, 1)) | 215 | var defaultMediaRow = this.Section.AddTuple(new MediaTuple(null, new Identifier(AccessModifier.Private, 1)) |
216 | { | 216 | { |
217 | DiskId = 1 | 217 | DiskId = 1, |
218 | }; | 218 | }); |
219 | 219 | ||
220 | mediaRows.Add(1, defaultMediaRow); | 220 | mediaRows.Add(1, defaultMediaRow); |
221 | this.Section.Tuples.Add(defaultMediaRow); | ||
222 | } | 221 | } |
223 | } | 222 | } |
224 | 223 | ||
@@ -298,14 +297,12 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
298 | /// <returns></returns> | 297 | /// <returns></returns> |
299 | private MediaTuple AddMediaRow(WixMediaTemplateTuple mediaTemplateTuple, int cabIndex) | 298 | private MediaTuple AddMediaRow(WixMediaTemplateTuple mediaTemplateTuple, int cabIndex) |
300 | { | 299 | { |
301 | var currentMediaTuple = new MediaTuple(mediaTemplateTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, cabIndex)); | 300 | return this.Section.AddTuple(new MediaTuple(mediaTemplateTuple.SourceLineNumbers, new Identifier(AccessModifier.Private, cabIndex)) |
302 | currentMediaTuple.DiskId = cabIndex; | 301 | { |
303 | currentMediaTuple.Cabinet = String.Format(CultureInfo.InvariantCulture, this.CabinetNameTemplate, cabIndex); | 302 | DiskId = cabIndex, |
304 | currentMediaTuple.CompressionLevel = mediaTemplateTuple.CompressionLevel; | 303 | Cabinet = String.Format(CultureInfo.InvariantCulture, this.CabinetNameTemplate, cabIndex), |
305 | 304 | CompressionLevel = mediaTemplateTuple.CompressionLevel, | |
306 | this.Section.Tuples.Add(currentMediaTuple); | 305 | }); |
307 | |||
308 | return currentMediaTuple; | ||
309 | } | 306 | } |
310 | } | 307 | } |
311 | } | 308 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs index f4fa510f..ca6bfd2f 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/AttachPatchTransformsCommand.cs | |||
@@ -225,7 +225,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
225 | // Put the summary information that was extracted back in now that it is updated. | 225 | // Put the summary information that was extracted back in now that it is updated. |
226 | foreach (var readSummaryInfo in summaryInfo.Values.OrderBy(s => s.PropertyId)) | 226 | foreach (var readSummaryInfo in summaryInfo.Values.OrderBy(s => s.PropertyId)) |
227 | { | 227 | { |
228 | section.Tuples.Add(readSummaryInfo); | 228 | section.AddTuple(readSummaryInfo); |
229 | } | 229 | } |
230 | 230 | ||
231 | this.SubStorages = subStorages; | 231 | this.SubStorages = subStorages; |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs index 8aa6047f..7a9dbc69 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindSummaryInfoCommand.cs | |||
@@ -44,10 +44,10 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
44 | this.InstallerVersion = 0; | 44 | this.InstallerVersion = 0; |
45 | this.ModularizationGuid = null; | 45 | this.ModularizationGuid = null; |
46 | 46 | ||
47 | bool foundCreateDataTime = false; | 47 | var foundCreateDataTime = false; |
48 | bool foundLastSaveDataTime = false; | 48 | var foundLastSaveDataTime = false; |
49 | bool foundCreatingApplication = false; | 49 | var foundCreatingApplication = false; |
50 | string now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); | 50 | var now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture); |
51 | 51 | ||
52 | foreach (var summaryInformationTuple in this.Section.Tuples.OfType<SummaryInformationTuple>()) | 52 | foreach (var summaryInformationTuple in this.Section.Tuples.OfType<SummaryInformationTuple>()) |
53 | { | 53 | { |
@@ -110,31 +110,31 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
110 | // add a summary information row for the create time/date property if its not already set | 110 | // add a summary information row for the create time/date property if its not already set |
111 | if (!foundCreateDataTime) | 111 | if (!foundCreateDataTime) |
112 | { | 112 | { |
113 | var createTimeDateRow = new SummaryInformationTuple(null); | 113 | this.Section.AddTuple(new SummaryInformationTuple(null) |
114 | createTimeDateRow.PropertyId = SumaryInformationType.Created; | 114 | { |
115 | createTimeDateRow.Value = now; | 115 | PropertyId = SumaryInformationType.Created, |
116 | 116 | Value = now, | |
117 | this.Section.Tuples.Add(createTimeDateRow); | 117 | }); |
118 | } | 118 | } |
119 | 119 | ||
120 | // add a summary information row for the last save time/date property if its not already set | 120 | // add a summary information row for the last save time/date property if its not already set |
121 | if (!foundLastSaveDataTime) | 121 | if (!foundLastSaveDataTime) |
122 | { | 122 | { |
123 | var lastSaveTimeDateRow = new SummaryInformationTuple(null); | 123 | this.Section.AddTuple(new SummaryInformationTuple(null) |
124 | lastSaveTimeDateRow.PropertyId = SumaryInformationType.LastSaved; | 124 | { |
125 | lastSaveTimeDateRow.Value = now; | 125 | PropertyId = SumaryInformationType.LastSaved, |
126 | 126 | Value = now, | |
127 | this.Section.Tuples.Add(lastSaveTimeDateRow); | 127 | }); |
128 | } | 128 | } |
129 | 129 | ||
130 | // add a summary information row for the creating application property if its not already set | 130 | // add a summary information row for the creating application property if its not already set |
131 | if (!foundCreatingApplication) | 131 | if (!foundCreatingApplication) |
132 | { | 132 | { |
133 | var creatingApplicationRow = new SummaryInformationTuple(null); | 133 | this.Section.AddTuple(new SummaryInformationTuple(null) |
134 | creatingApplicationRow.PropertyId = SumaryInformationType.CreatingApplication; | 134 | { |
135 | creatingApplicationRow.Value = String.Format(CultureInfo.InvariantCulture, AppCommon.GetCreatingApplicationString()); | 135 | PropertyId = SumaryInformationType.CreatingApplication, |
136 | 136 | Value = String.Format(CultureInfo.InvariantCulture, AppCommon.GetCreatingApplicationString()), | |
137 | this.Section.Tuples.Add(creatingApplicationRow); | 137 | }); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | } | 140 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs index 0d165f80..5b4fe9e5 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateSpecialPropertiesCommand.cs | |||
@@ -57,26 +57,26 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
57 | 57 | ||
58 | if (0 < adminProperties.Count) | 58 | if (0 < adminProperties.Count) |
59 | { | 59 | { |
60 | var tuple = new PropertyTuple(null, new Identifier(AccessModifier.Private, "AdminProperties")); | 60 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "AdminProperties")) |
61 | tuple.Value = String.Join(";", adminProperties); | 61 | { |
62 | 62 | Value = String.Join(";", adminProperties), | |
63 | this.Section.Tuples.Add(tuple); | 63 | }); |
64 | } | 64 | } |
65 | 65 | ||
66 | if (0 < secureProperties.Count) | 66 | if (0 < secureProperties.Count) |
67 | { | 67 | { |
68 | var tuple = new PropertyTuple(null, new Identifier(AccessModifier.Private, "SecureCustomProperties")); | 68 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "SecureCustomProperties")) |
69 | tuple.Value = String.Join(";", secureProperties); | 69 | { |
70 | 70 | Value = String.Join(";", secureProperties), | |
71 | this.Section.Tuples.Add(tuple); | 71 | }); |
72 | } | 72 | } |
73 | 73 | ||
74 | if (0 < hiddenProperties.Count) | 74 | if (0 < hiddenProperties.Count) |
75 | { | 75 | { |
76 | var tuple = new PropertyTuple(null, new Identifier(AccessModifier.Private, "MsiHiddenProperties")); | 76 | this.Section.AddTuple(new PropertyTuple(null, new Identifier(AccessModifier.Private, "MsiHiddenProperties")) |
77 | tuple.Value = String.Join(";", hiddenProperties); | 77 | { |
78 | 78 | Value = String.Join(";", hiddenProperties) | |
79 | this.Section.Tuples.Add(tuple); | 79 | }); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | } | 82 | } |
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs index fe014b0b..a5055209 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/SequenceActionsCommand.cs | |||
@@ -186,7 +186,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
186 | 186 | ||
187 | foreach (var action in scheduledActionTuples) | 187 | foreach (var action in scheduledActionTuples) |
188 | { | 188 | { |
189 | this.Section.Tuples.Add(action); | 189 | this.Section.AddTuple(action); |
190 | } | 190 | } |
191 | } | 191 | } |
192 | 192 | ||
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs index 81d46b41..7ecd58d7 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs | |||
@@ -158,8 +158,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
158 | 158 | ||
159 | if (null == facade.Hash) | 159 | if (null == facade.Hash) |
160 | { | 160 | { |
161 | facade.Hash = new MsiFileHashTuple(facade.SourceLineNumber, facade.Identifier); | 161 | facade.Hash = this.Section.AddTuple(new MsiFileHashTuple(facade.SourceLineNumber, facade.Identifier)); |
162 | this.Section.Tuples.Add(facade.Hash); | ||
163 | } | 162 | } |
164 | 163 | ||
165 | facade.Hash.Options = 0; | 164 | facade.Hash.Options = 0; |
@@ -337,23 +336,24 @@ namespace WixToolset.Core.WindowsInstaller.Bind | |||
337 | 336 | ||
338 | // override directly authored value | 337 | // override directly authored value |
339 | var lookup = String.Concat(facade.ComponentRef, "/", name); | 338 | var lookup = String.Concat(facade.ComponentRef, "/", name); |
340 | if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameRow)) | 339 | if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameTuple)) |
341 | { | 340 | { |
342 | assemblyNameRow = new MsiAssemblyNameTuple(facade.SourceLineNumber); | 341 | assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber) |
343 | assemblyNameRow.ComponentRef = facade.ComponentRef; | 342 | { |
344 | assemblyNameRow.Name = name; | 343 | ComponentRef = facade.ComponentRef, |
345 | assemblyNameRow.Value = value; | 344 | Name = name, |
345 | Value = value, | ||
346 | }); | ||
346 | 347 | ||
347 | if (null == facade.AssemblyNames) | 348 | if (null == facade.AssemblyNames) |
348 | { | 349 | { |
349 | facade.AssemblyNames = new List<MsiAssemblyNameTuple>(); | 350 | facade.AssemblyNames = new List<MsiAssemblyNameTuple>(); |
350 | } | 351 | } |
351 | 352 | ||
352 | facade.AssemblyNames.Add(assemblyNameRow); | 353 | facade.AssemblyNames.Add(assemblyNameTuple); |
353 | this.Section.Tuples.Add(assemblyNameRow); | ||
354 | } | 354 | } |
355 | 355 | ||
356 | assemblyNameRow.Value = value; | 356 | assemblyNameTuple.Value = value; |
357 | 357 | ||
358 | if (this.VariableCache != null) | 358 | if (this.VariableCache != null) |
359 | { | 359 | { |
diff --git a/src/WixToolset.Core/Binder.cs b/src/WixToolset.Core/Binder.cs index e6dd538b..a670714a 100644 --- a/src/WixToolset.Core/Binder.cs +++ b/src/WixToolset.Core/Binder.cs | |||
@@ -81,16 +81,16 @@ namespace WixToolset.Core | |||
81 | var executingAssembly = Assembly.GetExecutingAssembly(); | 81 | var executingAssembly = Assembly.GetExecutingAssembly(); |
82 | var fileVersion = FileVersionInfo.GetVersionInfo(executingAssembly.Location); | 82 | var fileVersion = FileVersionInfo.GetVersionInfo(executingAssembly.Location); |
83 | 83 | ||
84 | var buildInfoTuple = new WixBuildInfoTuple(); | 84 | var buildInfoTuple = entrySection.AddTuple(new WixBuildInfoTuple() |
85 | buildInfoTuple.WixVersion = fileVersion.FileVersion; | 85 | { |
86 | buildInfoTuple.WixOutputFile = outputFile; | 86 | WixVersion = fileVersion.FileVersion, |
87 | WixOutputFile = outputFile, | ||
88 | }); | ||
87 | 89 | ||
88 | if (!String.IsNullOrEmpty(outputPdbPath)) | 90 | if (!String.IsNullOrEmpty(outputPdbPath)) |
89 | { | 91 | { |
90 | buildInfoTuple.WixPdbFile = outputPdbPath; | 92 | buildInfoTuple.WixPdbFile = outputPdbPath; |
91 | } | 93 | } |
92 | |||
93 | entrySection.Tuples.Add(buildInfoTuple); | ||
94 | } | 94 | } |
95 | } | 95 | } |
96 | } | 96 | } |
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 | ||
diff --git a/src/WixToolset.Core/CompilerCore.cs b/src/WixToolset.Core/CompilerCore.cs index 51828975..93f9276c 100644 --- a/src/WixToolset.Core/CompilerCore.cs +++ b/src/WixToolset.Core/CompilerCore.cs | |||
@@ -14,6 +14,7 @@ namespace WixToolset.Core | |||
14 | using System.Xml.Linq; | 14 | using System.Xml.Linq; |
15 | using WixToolset.Data; | 15 | using WixToolset.Data; |
16 | using WixToolset.Data.Tuples; | 16 | using WixToolset.Data.Tuples; |
17 | using WixToolset.Data.WindowsInstaller; | ||
17 | using WixToolset.Extensibility; | 18 | using WixToolset.Extensibility; |
18 | using WixToolset.Extensibility.Data; | 19 | using WixToolset.Extensibility.Data; |
19 | using WixToolset.Extensibility.Services; | 20 | using WixToolset.Extensibility.Services; |
@@ -166,9 +167,10 @@ namespace WixToolset.Core | |||
166 | /// Add a tuple to the active section. | 167 | /// Add a tuple to the active section. |
167 | /// </summary> | 168 | /// </summary> |
168 | /// <param name="tuple">Tuple to add.</param> | 169 | /// <param name="tuple">Tuple to add.</param> |
169 | public void AddTuple(IntermediateTuple tuple) | 170 | public T AddTuple<T>(T tuple) |
171 | where T : IntermediateTuple | ||
170 | { | 172 | { |
171 | this.ActiveSection.Tuples.Add(tuple); | 173 | return this.ActiveSection.AddTuple(tuple); |
172 | } | 174 | } |
173 | 175 | ||
174 | /// <summary> | 176 | /// <summary> |
@@ -351,23 +353,6 @@ namespace WixToolset.Core | |||
351 | } | 353 | } |
352 | 354 | ||
353 | /// <summary> | 355 | /// <summary> |
354 | /// Creates a tuple in the active section. | ||
355 | /// </summary> | ||
356 | /// <param name="sourceLineNumbers">Source and line number of current row.</param> | ||
357 | /// <param name="tupleType">Type of tuple to create.</param> | ||
358 | /// <param name="identifier">Optional identifier.</param> | ||
359 | /// <returns>New tuple.</returns> | ||
360 | public IntermediateTuple CreateTuple(SourceLineNumber sourceLineNumbers, TupleDefinitionType tupleType, Identifier identifier = null) | ||
361 | { | ||
362 | var tupleDefinition = TupleDefinitions.ByType(tupleType); | ||
363 | var tuple = tupleDefinition.CreateTuple(sourceLineNumbers, identifier); | ||
364 | |||
365 | this.ActiveSection.Tuples.Add(tuple); | ||
366 | |||
367 | return tuple; | ||
368 | } | ||
369 | |||
370 | /// <summary> | ||
371 | /// Creates directories using the inline directory syntax. | 356 | /// Creates directories using the inline directory syntax. |
372 | /// </summary> | 357 | /// </summary> |
373 | /// <param name="sourceLineNumbers">Source line information.</param> | 358 | /// <param name="sourceLineNumbers">Source line information.</param> |
@@ -394,27 +379,38 @@ namespace WixToolset.Core | |||
394 | } | 379 | } |
395 | 380 | ||
396 | /// <summary> | 381 | /// <summary> |
397 | /// Create a WixSimpleReference row in the active section. | 382 | /// Create a WixSimpleReferenceTuple in the active section. |
398 | /// </summary> | 383 | /// </summary> |
399 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 384 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
400 | /// <param name="tableName">The table name of the simple reference.</param> | 385 | /// <param name="tupleName">The tuple name of the simple reference.</param> |
401 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | 386 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> |
402 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string tableName, params string[] primaryKeys) | 387 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string tupleName, params string[] primaryKeys) |
403 | { | 388 | { |
404 | if (!this.EncounteredError) | 389 | if (!this.EncounteredError) |
405 | { | 390 | { |
406 | string joinedKeys = String.Join("/", primaryKeys); | 391 | var joinedKeys = String.Join("/", primaryKeys); |
407 | string id = String.Concat(tableName, ":", joinedKeys); | 392 | var id = String.Concat(tupleName, ":", joinedKeys); |
408 | 393 | ||
409 | // If this simple reference hasn't been added to the active section already, add it. | 394 | // If this simple reference hasn't been added to the active section already, add it. |
410 | if (this.activeSectionSimpleReferences.Add(id)) | 395 | if (this.activeSectionSimpleReferences.Add(id)) |
411 | { | 396 | { |
412 | this.parseHelper.CreateSimpleReference(this.ActiveSection, sourceLineNumbers, tableName, primaryKeys); | 397 | this.parseHelper.CreateSimpleReference(this.ActiveSection, sourceLineNumbers, tupleName, primaryKeys); |
413 | } | 398 | } |
414 | } | 399 | } |
415 | } | 400 | } |
416 | 401 | ||
417 | /// <summary> | 402 | /// <summary> |
403 | /// Create a WixSimpleReferenceTuple in the active section. | ||
404 | /// </summary> | ||
405 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | ||
406 | /// <param name="tupleDefinition">The tuple definition of the simple reference.</param> | ||
407 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | ||
408 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, IntermediateTupleDefinition tupleDefinition, params string[] primaryKeys) | ||
409 | { | ||
410 | this.CreateSimpleReference(sourceLineNumbers, tupleDefinition.Name, primaryKeys); | ||
411 | } | ||
412 | |||
413 | /// <summary> | ||
418 | /// A row in the WixGroup table is added for this child node and its parent node. | 414 | /// A row in the WixGroup table is added for this child node and its parent node. |
419 | /// </summary> | 415 | /// </summary> |
420 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 416 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
@@ -431,7 +427,7 @@ namespace WixToolset.Core | |||
431 | } | 427 | } |
432 | 428 | ||
433 | /// <summary> | 429 | /// <summary> |
434 | /// Add the appropriate rows to make sure that the given table shows up | 430 | /// Add the appropriate tuples to make sure that the given table shows up |
435 | /// in the resulting output. | 431 | /// in the resulting output. |
436 | /// </summary> | 432 | /// </summary> |
437 | /// <param name="sourceLineNumbers">Source line numbers.</param> | 433 | /// <param name="sourceLineNumbers">Source line numbers.</param> |
@@ -445,6 +441,20 @@ namespace WixToolset.Core | |||
445 | } | 441 | } |
446 | 442 | ||
447 | /// <summary> | 443 | /// <summary> |
444 | /// Add the appropriate tuples to make sure that the given table shows up | ||
445 | /// in the resulting output. | ||
446 | /// </summary> | ||
447 | /// <param name="sourceLineNumbers">Source line numbers.</param> | ||
448 | /// <param name="tableDefinition">Definition of the table to ensure existance of.</param> | ||
449 | public void EnsureTable(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) | ||
450 | { | ||
451 | if (!this.EncounteredError) | ||
452 | { | ||
453 | this.parseHelper.EnsureTable(this.ActiveSection, sourceLineNumbers, tableDefinition); | ||
454 | } | ||
455 | } | ||
456 | |||
457 | /// <summary> | ||
448 | /// Get an attribute value. | 458 | /// Get an attribute value. |
449 | /// </summary> | 459 | /// </summary> |
450 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | 460 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> |
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) |
diff --git a/src/WixToolset.Core/Compiler_Bundle.cs b/src/WixToolset.Core/Compiler_Bundle.cs index ff746f8d..a0fe1608 100644 --- a/src/WixToolset.Core/Compiler_Bundle.cs +++ b/src/WixToolset.Core/Compiler_Bundle.cs | |||
@@ -84,14 +84,12 @@ namespace WixToolset.Core | |||
84 | 84 | ||
85 | if (!this.Core.EncounteredError) | 85 | if (!this.Core.EncounteredError) |
86 | { | 86 | { |
87 | var tuple = new WixApprovedExeForElevationTuple(sourceLineNumbers, id) | 87 | this.Core.AddTuple(new WixApprovedExeForElevationTuple(sourceLineNumbers, id) |
88 | { | 88 | { |
89 | Key = key, | 89 | Key = key, |
90 | ValueName = valueName, | 90 | ValueName = valueName, |
91 | Attributes = attributes | 91 | Attributes = attributes, |
92 | }; | 92 | }); |
93 | |||
94 | this.Core.AddTuple(tuple); | ||
95 | } | 93 | } |
96 | } | 94 | } |
97 | 95 | ||
@@ -282,7 +280,7 @@ namespace WixToolset.Core | |||
282 | this.ParseBundleExtensionElement(child); | 280 | this.ParseBundleExtensionElement(child); |
283 | break; | 281 | break; |
284 | case "BundleExtensionRef": | 282 | case "BundleExtensionRef": |
285 | this.ParseSimpleRefElement(child, "WixBundleExtension"); | 283 | this.ParseSimpleRefElement(child, TupleDefinitions.WixBundleExtension); |
286 | break; | 284 | break; |
287 | case "OptionalUpdateRegistration": | 285 | case "OptionalUpdateRegistration": |
288 | this.ParseOptionalUpdateRegistrationElement(child, manufacturer, parentName, name); | 286 | this.ParseOptionalUpdateRegistrationElement(child, manufacturer, parentName, name); |
@@ -303,7 +301,7 @@ namespace WixToolset.Core | |||
303 | this.ParseContainerElement(child); | 301 | this.ParseContainerElement(child); |
304 | break; | 302 | break; |
305 | case "ContainerRef": | 303 | case "ContainerRef": |
306 | this.ParseSimpleRefElement(child, "WixBundleContainer"); | 304 | this.ParseSimpleRefElement(child, TupleDefinitions.WixBundleContainer); |
307 | break; | 305 | break; |
308 | case "Log": | 306 | case "Log": |
309 | if (logSeen) | 307 | if (logSeen) |
@@ -327,7 +325,7 @@ namespace WixToolset.Core | |||
327 | this.ParseSetVariableElement(child); | 325 | this.ParseSetVariableElement(child); |
328 | break; | 326 | break; |
329 | case "SetVariableRef": | 327 | case "SetVariableRef": |
330 | this.ParseSimpleRefElement(child, "WixSetVariable"); | 328 | this.ParseSimpleRefElement(child, TupleDefinitions.WixSetVariable); |
331 | break; | 329 | break; |
332 | case "Update": | 330 | case "Update": |
333 | this.ParseUpdateElement(child); | 331 | this.ParseUpdateElement(child); |
@@ -356,7 +354,7 @@ namespace WixToolset.Core | |||
356 | 354 | ||
357 | if (!this.Core.EncounteredError) | 355 | if (!this.Core.EncounteredError) |
358 | { | 356 | { |
359 | var tuple = new WixBundleTuple(sourceLineNumbers) | 357 | var tuple = this.Core.AddTuple(new WixBundleTuple(sourceLineNumbers) |
360 | { | 358 | { |
361 | UpgradeCode = upgradeCode, | 359 | UpgradeCode = upgradeCode, |
362 | Version = version, | 360 | Version = version, |
@@ -375,7 +373,7 @@ namespace WixToolset.Core | |||
375 | Tag = tag, | 373 | Tag = tag, |
376 | Platform = this.CurrentPlatform, | 374 | Platform = this.CurrentPlatform, |
377 | ParentName = parentName, | 375 | ParentName = parentName, |
378 | }; | 376 | }); |
379 | 377 | ||
380 | if (!String.IsNullOrEmpty(logVariablePrefixAndExtension)) | 378 | if (!String.IsNullOrEmpty(logVariablePrefixAndExtension)) |
381 | { | 379 | { |
@@ -385,8 +383,6 @@ namespace WixToolset.Core | |||
385 | tuple.LogExtension = split[2]; | 383 | tuple.LogExtension = split[2]; |
386 | } | 384 | } |
387 | 385 | ||
388 | this.Core.AddTuple(tuple);; | ||
389 | |||
390 | if (null != upgradeCode) | 386 | if (null != upgradeCode) |
391 | { | 387 | { |
392 | this.Core.AddTuple(new WixRelatedBundleTuple(sourceLineNumbers) | 388 | this.Core.AddTuple(new WixRelatedBundleTuple(sourceLineNumbers) |
@@ -399,32 +395,32 @@ namespace WixToolset.Core | |||
399 | this.Core.AddTuple(new WixBundleContainerTuple(sourceLineNumbers, Compiler.BurnDefaultAttachedContainerId) | 395 | this.Core.AddTuple(new WixBundleContainerTuple(sourceLineNumbers, Compiler.BurnDefaultAttachedContainerId) |
400 | { | 396 | { |
401 | Name = "bundle-attached.cab", | 397 | Name = "bundle-attached.cab", |
402 | Type = ContainerType.Attached | 398 | Type = ContainerType.Attached, |
403 | }); | 399 | }); |
404 | 400 | ||
405 | // Ensure that the bundle stores the well-known persisted values. | 401 | // Ensure that the bundle stores the well-known persisted values. |
406 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_NAME)) | 402 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_NAME)) |
407 | { | 403 | { |
408 | Hidden = false, | 404 | Hidden = false, |
409 | Persisted = true | 405 | Persisted = true, |
410 | }); | 406 | }); |
411 | 407 | ||
412 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE)) | 408 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE)) |
413 | { | 409 | { |
414 | Hidden = false, | 410 | Hidden = false, |
415 | Persisted = true | 411 | Persisted = true, |
416 | }); | 412 | }); |
417 | 413 | ||
418 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER)) | 414 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_ORIGINAL_SOURCE_FOLDER)) |
419 | { | 415 | { |
420 | Hidden = false, | 416 | Hidden = false, |
421 | Persisted = true | 417 | Persisted = true, |
422 | }); | 418 | }); |
423 | 419 | ||
424 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_LAST_USED_SOURCE)) | 420 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, BurnConstants.BURN_BUNDLE_LAST_USED_SOURCE)) |
425 | { | 421 | { |
426 | Hidden = false, | 422 | Hidden = false, |
427 | Persisted = true | 423 | Persisted = true, |
428 | }); | 424 | }); |
429 | } | 425 | } |
430 | } | 426 | } |
@@ -767,7 +763,7 @@ namespace WixToolset.Core | |||
767 | } | 763 | } |
768 | else | 764 | else |
769 | { | 765 | { |
770 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixBootstrapperApplication", id); | 766 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixBootstrapperApplication, id); |
771 | } | 767 | } |
772 | } | 768 | } |
773 | 769 | ||
@@ -830,11 +826,10 @@ namespace WixToolset.Core | |||
830 | // Add the BundleExtension. | 826 | // Add the BundleExtension. |
831 | if (!this.Core.EncounteredError) | 827 | if (!this.Core.EncounteredError) |
832 | { | 828 | { |
833 | var tuple = new WixBundleExtensionTuple(sourceLineNumbers, id) | 829 | this.Core.AddTuple(new WixBundleExtensionTuple(sourceLineNumbers, id) |
834 | { | 830 | { |
835 | PayloadRef = id.Id, | 831 | PayloadRef = id.Id, |
836 | }; | 832 | }); |
837 | this.Core.AddTuple(tuple); | ||
838 | } | 833 | } |
839 | } | 834 | } |
840 | 835 | ||
@@ -1194,7 +1189,7 @@ namespace WixToolset.Core | |||
1194 | 1189 | ||
1195 | if (!this.Core.EncounteredError) | 1190 | if (!this.Core.EncounteredError) |
1196 | { | 1191 | { |
1197 | tuple = new WixBundlePayloadTuple(sourceLineNumbers, id) | 1192 | tuple = this.Core.AddTuple(new WixBundlePayloadTuple(sourceLineNumbers, id) |
1198 | { | 1193 | { |
1199 | Name = String.IsNullOrEmpty(name) ? Path.GetFileName(sourceFile) : name, | 1194 | Name = String.IsNullOrEmpty(name) ? Path.GetFileName(sourceFile) : name, |
1200 | SourceFile = new IntermediateFieldPathValue { Path = sourceFile }, | 1195 | SourceFile = new IntermediateFieldPathValue { Path = sourceFile }, |
@@ -1204,7 +1199,7 @@ namespace WixToolset.Core | |||
1204 | DisplayName = displayName, | 1199 | DisplayName = displayName, |
1205 | Description = description, | 1200 | Description = description, |
1206 | EnableSignatureValidation = (YesNoType.Yes == enableSignatureVerification) | 1201 | EnableSignatureValidation = (YesNoType.Yes == enableSignatureVerification) |
1207 | }; | 1202 | }); |
1208 | 1203 | ||
1209 | if (null != remotePayload) | 1204 | if (null != remotePayload) |
1210 | { | 1205 | { |
@@ -1217,8 +1212,6 @@ namespace WixToolset.Core | |||
1217 | tuple.Version = remotePayload.Version; | 1212 | tuple.Version = remotePayload.Version; |
1218 | } | 1213 | } |
1219 | 1214 | ||
1220 | this.Core.AddTuple(tuple); | ||
1221 | |||
1222 | this.CreateGroupAndOrderingRows(sourceLineNumbers, parentType, parentId.Id, ComplexReferenceChildType.Payload, id.Id, previousType, previousId?.Id); | 1215 | this.CreateGroupAndOrderingRows(sourceLineNumbers, parentType, parentId.Id, ComplexReferenceChildType.Payload, id.Id, previousType, previousId?.Id); |
1223 | } | 1216 | } |
1224 | 1217 | ||
@@ -1322,7 +1315,7 @@ namespace WixToolset.Core | |||
1322 | { | 1315 | { |
1323 | case "Id": | 1316 | case "Id": |
1324 | id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib); | 1317 | id = this.Core.GetAttributeIdentifier(sourceLineNumbers, attrib); |
1325 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixBundlePayloadGroup", id.Id); | 1318 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixBundlePayloadGroup, id.Id); |
1326 | break; | 1319 | break; |
1327 | default: | 1320 | default: |
1328 | this.Core.UnexpectedAttribute(node, attrib); | 1321 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -1377,15 +1370,13 @@ namespace WixToolset.Core | |||
1377 | // TODO: Should we define our own enum for this, just to ensure there's no "cross-contamination"? | 1370 | // TODO: Should we define our own enum for this, just to ensure there's no "cross-contamination"? |
1378 | // TODO: Also, we could potentially include an 'Attributes' field to track things like | 1371 | // TODO: Also, we could potentially include an 'Attributes' field to track things like |
1379 | // 'before' vs. 'after', and explicit vs. inferred dependencies. | 1372 | // 'before' vs. 'after', and explicit vs. inferred dependencies. |
1380 | var tuple = new WixOrderingTuple(sourceLineNumbers) | 1373 | this.Core.AddTuple(new WixOrderingTuple(sourceLineNumbers) |
1381 | { | 1374 | { |
1382 | ItemType = type, | 1375 | ItemType = type, |
1383 | ItemIdRef = id, | 1376 | ItemIdRef = id, |
1384 | DependsOnType = previousType, | 1377 | DependsOnType = previousType, |
1385 | DependsOnIdRef = previousId | 1378 | DependsOnIdRef = previousId |
1386 | }; | 1379 | }); |
1387 | |||
1388 | this.Core.AddTuple(tuple); | ||
1389 | } | 1380 | } |
1390 | } | 1381 | } |
1391 | 1382 | ||
@@ -2101,7 +2092,7 @@ namespace WixToolset.Core | |||
2101 | attributes |= (YesNoType.Yes == permanent) ? WixBundlePackageAttributes.Permanent : 0; | 2092 | attributes |= (YesNoType.Yes == permanent) ? WixBundlePackageAttributes.Permanent : 0; |
2102 | attributes |= (YesNoType.Yes == visible) ? WixBundlePackageAttributes.Visible : 0; | 2093 | attributes |= (YesNoType.Yes == visible) ? WixBundlePackageAttributes.Visible : 0; |
2103 | 2094 | ||
2104 | var chainPackageTuple = new WixBundlePackageTuple(sourceLineNumbers, id) | 2095 | var chainPackageTuple = this.Core.AddTuple(new WixBundlePackageTuple(sourceLineNumbers, id) |
2105 | { | 2096 | { |
2106 | Type = packageType, | 2097 | Type = packageType, |
2107 | PayloadRef = id.Id, | 2098 | PayloadRef = id.Id, |
@@ -2110,7 +2101,7 @@ namespace WixToolset.Core | |||
2110 | CacheId = cacheId, | 2101 | CacheId = cacheId, |
2111 | LogPathVariable = logPathVariable, | 2102 | LogPathVariable = logPathVariable, |
2112 | RollbackLogPathVariable = rollbackPathVariable, | 2103 | RollbackLogPathVariable = rollbackPathVariable, |
2113 | }; | 2104 | }); |
2114 | 2105 | ||
2115 | if (YesNoAlwaysType.NotSet != cache) | 2106 | if (YesNoAlwaysType.NotSet != cache) |
2116 | { | 2107 | { |
@@ -2132,8 +2123,6 @@ namespace WixToolset.Core | |||
2132 | chainPackageTuple.InstallSize = installSize; | 2123 | chainPackageTuple.InstallSize = installSize; |
2133 | } | 2124 | } |
2134 | 2125 | ||
2135 | this.Core.AddTuple(chainPackageTuple); | ||
2136 | |||
2137 | switch (packageType) | 2126 | switch (packageType) |
2138 | { | 2127 | { |
2139 | case WixBundlePackageType.Exe: | 2128 | case WixBundlePackageType.Exe: |
@@ -2370,7 +2359,7 @@ namespace WixToolset.Core | |||
2370 | { | 2359 | { |
2371 | case "Id": | 2360 | case "Id": |
2372 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2361 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
2373 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixBundlePackageGroup", id); | 2362 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixBundlePackageGroup, id); |
2374 | break; | 2363 | break; |
2375 | case "After": | 2364 | case "After": |
2376 | after = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2365 | after = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
@@ -2425,7 +2414,7 @@ namespace WixToolset.Core | |||
2425 | { | 2414 | { |
2426 | this.Core.AddTuple(new WixChainItemTuple(sourceLineNumbers, id)); | 2415 | this.Core.AddTuple(new WixChainItemTuple(sourceLineNumbers, id)); |
2427 | 2416 | ||
2428 | var rollbackBoundary = new WixBundleRollbackBoundaryTuple(sourceLineNumbers, id); | 2417 | var rollbackBoundary = this.Core.AddTuple(new WixBundleRollbackBoundaryTuple(sourceLineNumbers, id)); |
2429 | 2418 | ||
2430 | if (YesNoType.NotSet != vital) | 2419 | if (YesNoType.NotSet != vital) |
2431 | { | 2420 | { |
@@ -2437,8 +2426,6 @@ namespace WixToolset.Core | |||
2437 | rollbackBoundary.Transaction = (transaction == YesNoType.Yes); | 2426 | rollbackBoundary.Transaction = (transaction == YesNoType.Yes); |
2438 | } | 2427 | } |
2439 | 2428 | ||
2440 | this.Core.AddTuple(rollbackBoundary); | ||
2441 | |||
2442 | this.CreateChainPackageMetaRows(sourceLineNumbers, parentType, parentId, ComplexReferenceChildType.Package, id.Id, previousType, previousId, null); | 2429 | this.CreateChainPackageMetaRows(sourceLineNumbers, parentType, parentId, ComplexReferenceChildType.Package, id.Id, previousType, previousId, null); |
2443 | } | 2430 | } |
2444 | 2431 | ||
@@ -2520,19 +2507,17 @@ namespace WixToolset.Core | |||
2520 | 2507 | ||
2521 | if (!this.Core.EncounteredError) | 2508 | if (!this.Core.EncounteredError) |
2522 | { | 2509 | { |
2523 | var tuple = new WixBundleMsiPropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, packageId, name)) | 2510 | var tuple = this.Core.AddTuple(new WixBundleMsiPropertyTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, packageId, name)) |
2524 | { | 2511 | { |
2525 | PackageRef = packageId, | 2512 | PackageRef = packageId, |
2526 | Name = name, | 2513 | Name = name, |
2527 | Value = value | 2514 | Value = value |
2528 | }; | 2515 | }); |
2529 | 2516 | ||
2530 | if (!String.IsNullOrEmpty(condition)) | 2517 | if (!String.IsNullOrEmpty(condition)) |
2531 | { | 2518 | { |
2532 | tuple.Condition = condition; | 2519 | tuple.Condition = condition; |
2533 | } | 2520 | } |
2534 | |||
2535 | this.Core.AddTuple(tuple); | ||
2536 | } | 2521 | } |
2537 | } | 2522 | } |
2538 | 2523 | ||
@@ -2554,7 +2539,7 @@ namespace WixToolset.Core | |||
2554 | { | 2539 | { |
2555 | case "Id": | 2540 | case "Id": |
2556 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 2541 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
2557 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixBundlePackage", id); | 2542 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixBundlePackage, id); |
2558 | break; | 2543 | break; |
2559 | default: | 2544 | default: |
2560 | this.Core.UnexpectedAttribute(node, attrib); | 2545 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -2650,16 +2635,11 @@ namespace WixToolset.Core | |||
2650 | 2635 | ||
2651 | if (!this.Core.EncounteredError) | 2636 | if (!this.Core.EncounteredError) |
2652 | { | 2637 | { |
2653 | var tuple = new WixRelatedBundleTuple(sourceLineNumbers) | 2638 | this.Core.AddTuple(new WixRelatedBundleTuple(sourceLineNumbers) |
2654 | { | 2639 | { |
2655 | BundleId = id, | 2640 | BundleId = id, |
2656 | Action = actionType, | 2641 | Action = actionType, |
2657 | }; | 2642 | }); |
2658 | |||
2659 | this.Core.AddTuple(tuple); | ||
2660 | //var row = this.Core.CreateRow(sourceLineNumbers, TupleDefinitionType.WixRelatedBundle); | ||
2661 | //row.Set(0, id); | ||
2662 | //row.Set(1, (int)actionType); | ||
2663 | } | 2643 | } |
2664 | } | 2644 | } |
2665 | 2645 | ||
@@ -2701,12 +2681,10 @@ namespace WixToolset.Core | |||
2701 | 2681 | ||
2702 | if (!this.Core.EncounteredError) | 2682 | if (!this.Core.EncounteredError) |
2703 | { | 2683 | { |
2704 | var tuple = new WixBundleUpdateTuple(sourceLineNumbers) | 2684 | this.Core.AddTuple(new WixBundleUpdateTuple(sourceLineNumbers) |
2705 | { | 2685 | { |
2706 | Location = location | 2686 | Location = location |
2707 | }; | 2687 | }); |
2708 | |||
2709 | this.Core.AddTuple(tuple); | ||
2710 | } | 2688 | } |
2711 | } | 2689 | } |
2712 | 2690 | ||
@@ -2773,12 +2751,11 @@ namespace WixToolset.Core | |||
2773 | 2751 | ||
2774 | if (!this.Messaging.EncounteredError) | 2752 | if (!this.Messaging.EncounteredError) |
2775 | { | 2753 | { |
2776 | var tuple = new WixSetVariableTuple(sourceLineNumbers, id) | 2754 | this.Core.AddTuple(new WixSetVariableTuple(sourceLineNumbers, id) |
2777 | { | 2755 | { |
2778 | Value = value, | 2756 | Value = value, |
2779 | Type = type, | 2757 | Type = type, |
2780 | }; | 2758 | }); |
2781 | this.Core.AddTuple(tuple); | ||
2782 | } | 2759 | } |
2783 | } | 2760 | } |
2784 | 2761 | ||
@@ -2848,15 +2825,13 @@ namespace WixToolset.Core | |||
2848 | 2825 | ||
2849 | if (!this.Core.EncounteredError) | 2826 | if (!this.Core.EncounteredError) |
2850 | { | 2827 | { |
2851 | var tuple = new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, name)) | 2828 | this.Core.AddTuple(new WixBundleVariableTuple(sourceLineNumbers, new Identifier(AccessModifier.Private, name)) |
2852 | { | 2829 | { |
2853 | Value = value, | 2830 | Value = value, |
2854 | Type = type, | 2831 | Type = type, |
2855 | Hidden = hidden, | 2832 | Hidden = hidden, |
2856 | Persisted = persisted | 2833 | Persisted = persisted |
2857 | }; | 2834 | }); |
2858 | |||
2859 | this.Core.AddTuple(tuple); | ||
2860 | } | 2835 | } |
2861 | } | 2836 | } |
2862 | 2837 | ||
diff --git a/src/WixToolset.Core/Compiler_EmbeddedUI.cs b/src/WixToolset.Core/Compiler_EmbeddedUI.cs index e71c2f56..706fe6e9 100644 --- a/src/WixToolset.Core/Compiler_EmbeddedUI.cs +++ b/src/WixToolset.Core/Compiler_EmbeddedUI.cs | |||
@@ -42,7 +42,7 @@ namespace WixToolset.Core | |||
42 | } | 42 | } |
43 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 43 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
44 | type = 0x2; | 44 | type = 0x2; |
45 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", source); // add a reference to the appropriate Binary | 45 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, source); // add a reference to the appropriate Binary |
46 | break; | 46 | break; |
47 | case "CommandLine": | 47 | case "CommandLine": |
48 | commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 48 | commandLine = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
@@ -54,7 +54,7 @@ namespace WixToolset.Core | |||
54 | } | 54 | } |
55 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 55 | source = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
56 | type = 0x12; | 56 | type = 0x12; |
57 | this.Core.CreateSimpleReference(sourceLineNumbers, "File", source); // add a reference to the appropriate File | 57 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.File, source); // add a reference to the appropriate File |
58 | break; | 58 | break; |
59 | case "PropertySource": | 59 | case "PropertySource": |
60 | if (null != source) | 60 | if (null != source) |
@@ -317,16 +317,14 @@ namespace WixToolset.Core | |||
317 | 317 | ||
318 | if (!this.Core.EncounteredError) | 318 | if (!this.Core.EncounteredError) |
319 | { | 319 | { |
320 | var tuple = new MsiEmbeddedUITuple(sourceLineNumbers, id) | 320 | this.Core.AddTuple(new MsiEmbeddedUITuple(sourceLineNumbers, id) |
321 | { | 321 | { |
322 | FileName = name, | 322 | FileName = name, |
323 | EntryPoint = true, | 323 | EntryPoint = true, |
324 | SupportsBasicUI = supportsBasicUI, | 324 | SupportsBasicUI = supportsBasicUI, |
325 | MessageFilter = messageFilter, | 325 | MessageFilter = messageFilter, |
326 | Source = sourceFile | 326 | Source = sourceFile |
327 | }; | 327 | }); |
328 | |||
329 | this.Core.AddTuple(tuple); | ||
330 | } | 328 | } |
331 | } | 329 | } |
332 | 330 | ||
@@ -406,13 +404,11 @@ namespace WixToolset.Core | |||
406 | 404 | ||
407 | if (!this.Core.EncounteredError) | 405 | if (!this.Core.EncounteredError) |
408 | { | 406 | { |
409 | var tuple = new MsiEmbeddedUITuple(sourceLineNumbers, id) | 407 | this.Core.AddTuple(new MsiEmbeddedUITuple(sourceLineNumbers, id) |
410 | { | 408 | { |
411 | FileName = name, | 409 | FileName = name, |
412 | Source = sourceFile | 410 | Source = sourceFile |
413 | }; | 411 | }); |
414 | |||
415 | this.Core.AddTuple(tuple); | ||
416 | } | 412 | } |
417 | } | 413 | } |
418 | } | 414 | } |
diff --git a/src/WixToolset.Core/Compiler_Module.cs b/src/WixToolset.Core/Compiler_Module.cs index e1563808..6166ae72 100644 --- a/src/WixToolset.Core/Compiler_Module.cs +++ b/src/WixToolset.Core/Compiler_Module.cs | |||
@@ -136,7 +136,7 @@ namespace WixToolset.Core | |||
136 | this.ParseCustomActionElement(child); | 136 | this.ParseCustomActionElement(child); |
137 | break; | 137 | break; |
138 | case "CustomActionRef": | 138 | case "CustomActionRef": |
139 | this.ParseSimpleRefElement(child, "CustomAction"); | 139 | this.ParseSimpleRefElement(child, TupleDefinitions.CustomAction); |
140 | break; | 140 | break; |
141 | case "CustomTable": | 141 | case "CustomTable": |
142 | this.ParseCustomTableElement(child); | 142 | this.ParseCustomTableElement(child); |
@@ -154,7 +154,7 @@ namespace WixToolset.Core | |||
154 | this.ParseEmbeddedChainerElement(child); | 154 | this.ParseEmbeddedChainerElement(child); |
155 | break; | 155 | break; |
156 | case "EmbeddedChainerRef": | 156 | case "EmbeddedChainerRef": |
157 | this.ParseSimpleRefElement(child, "MsiEmbeddedChainer"); | 157 | this.ParseSimpleRefElement(child, TupleDefinitions.MsiEmbeddedChainer); |
158 | break; | 158 | break; |
159 | case "EnsureTable": | 159 | case "EnsureTable": |
160 | this.ParseEnsureTableElement(child); | 160 | this.ParseEnsureTableElement(child); |
@@ -178,7 +178,7 @@ namespace WixToolset.Core | |||
178 | this.ParsePropertyElement(child); | 178 | this.ParsePropertyElement(child); |
179 | break; | 179 | break; |
180 | case "PropertyRef": | 180 | case "PropertyRef": |
181 | this.ParseSimpleRefElement(child, "Property"); | 181 | this.ParseSimpleRefElement(child, TupleDefinitions.Property); |
182 | break; | 182 | break; |
183 | case "SetDirectory": | 183 | case "SetDirectory": |
184 | this.ParseSetDirectoryElement(child); | 184 | this.ParseSetDirectoryElement(child); |
@@ -197,7 +197,7 @@ namespace WixToolset.Core | |||
197 | this.ParseUIElement(child); | 197 | this.ParseUIElement(child); |
198 | break; | 198 | break; |
199 | case "UIRef": | 199 | case "UIRef": |
200 | this.ParseSimpleRefElement(child, "WixUI"); | 200 | this.ParseSimpleRefElement(child, TupleDefinitions.WixUI); |
201 | break; | 201 | break; |
202 | case "WixVariable": | 202 | case "WixVariable": |
203 | this.ParseWixVariableElement(child); | 203 | this.ParseWixVariableElement(child); |
@@ -216,15 +216,13 @@ namespace WixToolset.Core | |||
216 | 216 | ||
217 | if (!this.Core.EncounteredError) | 217 | if (!this.Core.EncounteredError) |
218 | { | 218 | { |
219 | var tuple = new ModuleSignatureTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, this.activeName, this.activeLanguage)) | 219 | var tuple = this.Core.AddTuple(new ModuleSignatureTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, this.activeName, this.activeLanguage)) |
220 | { | 220 | { |
221 | ModuleID = this.activeName, | 221 | ModuleID = this.activeName, |
222 | Version = version | 222 | Version = version |
223 | }; | 223 | }); |
224 | 224 | ||
225 | tuple.Set((int)ModuleSignatureTupleFields.Language, this.activeLanguage); | 225 | tuple.Set((int)ModuleSignatureTupleFields.Language, this.activeLanguage); |
226 | |||
227 | this.Core.AddTuple(tuple); | ||
228 | } | 226 | } |
229 | } | 227 | } |
230 | finally | 228 | finally |
@@ -286,17 +284,15 @@ namespace WixToolset.Core | |||
286 | 284 | ||
287 | if (!this.Core.EncounteredError) | 285 | if (!this.Core.EncounteredError) |
288 | { | 286 | { |
289 | var tuple = new ModuleDependencyTuple(sourceLineNumbers) | 287 | var tuple = this.Core.AddTuple(new ModuleDependencyTuple(sourceLineNumbers) |
290 | { | 288 | { |
291 | ModuleID = this.activeName, | 289 | ModuleID = this.activeName, |
292 | RequiredID = requiredId, | 290 | RequiredID = requiredId, |
293 | RequiredLanguage = requiredLanguage, | 291 | RequiredLanguage = requiredLanguage, |
294 | RequiredVersion = requiredVersion | 292 | RequiredVersion = requiredVersion |
295 | }; | 293 | }); |
296 | 294 | ||
297 | tuple.Set((int)ModuleDependencyTupleFields.ModuleLanguage, this.activeLanguage); | 295 | tuple.Set((int)ModuleDependencyTupleFields.ModuleLanguage, this.activeLanguage); |
298 | |||
299 | this.Core.AddTuple(tuple); | ||
300 | } | 296 | } |
301 | } | 297 | } |
302 | 298 | ||
@@ -369,18 +365,16 @@ namespace WixToolset.Core | |||
369 | 365 | ||
370 | if (!this.Core.EncounteredError) | 366 | if (!this.Core.EncounteredError) |
371 | { | 367 | { |
372 | var tuple = new ModuleExclusionTuple(sourceLineNumbers) | 368 | var tuple = this.Core.AddTuple(new ModuleExclusionTuple(sourceLineNumbers) |
373 | { | 369 | { |
374 | ModuleID = this.activeName, | 370 | ModuleID = this.activeName, |
375 | ExcludedID = excludedId, | 371 | ExcludedID = excludedId, |
376 | ExcludedMinVersion = excludedMinVersion, | 372 | ExcludedMinVersion = excludedMinVersion, |
377 | ExcludedMaxVersion = excludedMaxVersion | 373 | ExcludedMaxVersion = excludedMaxVersion |
378 | }; | 374 | }); |
379 | 375 | ||
380 | tuple.Set((int)ModuleExclusionTupleFields.ModuleLanguage, this.activeLanguage); | 376 | tuple.Set((int)ModuleExclusionTupleFields.ModuleLanguage, this.activeLanguage); |
381 | tuple.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, excludedLanguageField); | 377 | tuple.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, excludedLanguageField); |
382 | |||
383 | this.Core.AddTuple(tuple); | ||
384 | } | 378 | } |
385 | } | 379 | } |
386 | 380 | ||
@@ -491,7 +485,7 @@ namespace WixToolset.Core | |||
491 | 485 | ||
492 | if (!this.Core.EncounteredError) | 486 | if (!this.Core.EncounteredError) |
493 | { | 487 | { |
494 | var tuple = new ModuleConfigurationTuple(sourceLineNumbers, name) | 488 | this.Core.AddTuple(new ModuleConfigurationTuple(sourceLineNumbers, name) |
495 | { | 489 | { |
496 | Format = format, | 490 | Format = format, |
497 | Type = type, | 491 | Type = type, |
@@ -503,9 +497,7 @@ namespace WixToolset.Core | |||
503 | Description = description, | 497 | Description = description, |
504 | HelpLocation = helpLocation, | 498 | HelpLocation = helpLocation, |
505 | HelpKeyword = helpKeyword | 499 | HelpKeyword = helpKeyword |
506 | }; | 500 | }); |
507 | |||
508 | this.Core.AddTuple(tuple); | ||
509 | } | 501 | } |
510 | } | 502 | } |
511 | 503 | ||
@@ -571,15 +563,13 @@ namespace WixToolset.Core | |||
571 | 563 | ||
572 | if (!this.Core.EncounteredError) | 564 | if (!this.Core.EncounteredError) |
573 | { | 565 | { |
574 | var tuple = new ModuleSubstitutionTuple(sourceLineNumbers) | 566 | this.Core.AddTuple(new ModuleSubstitutionTuple(sourceLineNumbers) |
575 | { | 567 | { |
576 | Table = table, | 568 | Table = table, |
577 | Row = rowKeys, | 569 | Row = rowKeys, |
578 | Column = column, | 570 | Column = column, |
579 | Value = value | 571 | Value = value |
580 | }; | 572 | }); |
581 | |||
582 | this.Core.AddTuple(tuple); | ||
583 | } | 573 | } |
584 | } | 574 | } |
585 | 575 | ||
diff --git a/src/WixToolset.Core/Compiler_Patch.cs b/src/WixToolset.Core/Compiler_Patch.cs index f8d05132..f7481143 100644 --- a/src/WixToolset.Core/Compiler_Patch.cs +++ b/src/WixToolset.Core/Compiler_Patch.cs | |||
@@ -197,14 +197,12 @@ namespace WixToolset.Core | |||
197 | 197 | ||
198 | if (!this.Core.EncounteredError) | 198 | if (!this.Core.EncounteredError) |
199 | { | 199 | { |
200 | var tuple = new WixPatchIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, patchId)) | 200 | this.Core.AddTuple(new WixPatchIdTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, patchId)) |
201 | { | 201 | { |
202 | ClientPatchId = clientPatchId, | 202 | ClientPatchId = clientPatchId, |
203 | OptimizePatchSizeForLargeFiles = optimizePatchSizeForLargeFiles, | 203 | OptimizePatchSizeForLargeFiles = optimizePatchSizeForLargeFiles, |
204 | ApiPatchingSymbolFlags = apiPatchingSymbolFlags | 204 | ApiPatchingSymbolFlags = apiPatchingSymbolFlags, |
205 | }; | 205 | }); |
206 | |||
207 | this.Core.AddTuple(tuple); | ||
208 | 206 | ||
209 | if (allowRemoval) | 207 | if (allowRemoval) |
210 | { | 208 | { |
@@ -427,15 +425,13 @@ namespace WixToolset.Core | |||
427 | 425 | ||
428 | if (!this.Core.EncounteredError) | 426 | if (!this.Core.EncounteredError) |
429 | { | 427 | { |
430 | var tuple = new MsiPatchSequenceTuple(sourceLineNumbers) | 428 | this.Core.AddTuple(new MsiPatchSequenceTuple(sourceLineNumbers) |
431 | { | 429 | { |
432 | PatchFamily = id.Id, | 430 | PatchFamily = id.Id, |
433 | ProductCode = productCode, | 431 | ProductCode = productCode, |
434 | Sequence = version, | 432 | Sequence = version, |
435 | Attributes = attributes | 433 | Attributes = attributes |
436 | }; | 434 | }); |
437 | |||
438 | this.Core.AddTuple(tuple); | ||
439 | 435 | ||
440 | if (ComplexReferenceParentType.Unknown != parentType) | 436 | if (ComplexReferenceParentType.Unknown != parentType) |
441 | { | 437 | { |
@@ -536,7 +532,7 @@ namespace WixToolset.Core | |||
536 | { | 532 | { |
537 | case "Id": | 533 | case "Id": |
538 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 534 | id = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
539 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixPatchFamilyGroup", id); | 535 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixPatchFamilyGroup, id); |
540 | break; | 536 | break; |
541 | default: | 537 | default: |
542 | this.Core.UnexpectedAttribute(node, attrib); | 538 | this.Core.UnexpectedAttribute(node, attrib); |
diff --git a/src/WixToolset.Core/Compiler_PatchCreation.cs b/src/WixToolset.Core/Compiler_PatchCreation.cs index 5994795c..3371d84e 100644 --- a/src/WixToolset.Core/Compiler_PatchCreation.cs +++ b/src/WixToolset.Core/Compiler_PatchCreation.cs | |||
@@ -258,13 +258,13 @@ namespace WixToolset.Core | |||
258 | 258 | ||
259 | if (!this.Core.EncounteredError) | 259 | if (!this.Core.EncounteredError) |
260 | { | 260 | { |
261 | var tuple = new ImageFamiliesTuple(sourceLineNumbers) | 261 | var tuple = this.Core.AddTuple(new ImageFamiliesTuple(sourceLineNumbers) |
262 | { | 262 | { |
263 | Family = name, | 263 | Family = name, |
264 | MediaSrcPropName = mediaSrcProp, | 264 | MediaSrcPropName = mediaSrcProp, |
265 | DiskPrompt = diskPrompt, | 265 | DiskPrompt = diskPrompt, |
266 | VolumeLabel = volumeLabel | 266 | VolumeLabel = volumeLabel |
267 | }; | 267 | }); |
268 | 268 | ||
269 | if (CompilerConstants.IntegerNotSet != diskId) | 269 | if (CompilerConstants.IntegerNotSet != diskId) |
270 | { | 270 | { |
@@ -275,8 +275,6 @@ namespace WixToolset.Core | |||
275 | { | 275 | { |
276 | tuple.FileSequenceStart = sequenceStart; | 276 | tuple.FileSequenceStart = sequenceStart; |
277 | } | 277 | } |
278 | |||
279 | this.Core.AddTuple(tuple); | ||
280 | } | 278 | } |
281 | } | 279 | } |
282 | 280 | ||
@@ -675,16 +673,14 @@ namespace WixToolset.Core | |||
675 | 673 | ||
676 | if (!this.Core.EncounteredError) | 674 | if (!this.Core.EncounteredError) |
677 | { | 675 | { |
678 | var tuple = new TargetFilesOptionalDataTuple(sourceLineNumbers) | 676 | var tuple = this.Core.AddTuple(new TargetFilesOptionalDataTuple(sourceLineNumbers) |
679 | { | 677 | { |
680 | Target = target, | 678 | Target = target, |
681 | FTK = file, | 679 | FTK = file, |
682 | SymbolPaths = symbols, | 680 | SymbolPaths = symbols, |
683 | IgnoreOffsets = ignoreOffsets, | 681 | IgnoreOffsets = ignoreOffsets, |
684 | IgnoreLengths = ignoreLengths | 682 | IgnoreLengths = ignoreLengths, |
685 | }; | 683 | }); |
686 | |||
687 | this.Core.AddTuple(tuple); | ||
688 | 684 | ||
689 | if (null != protectOffsets) | 685 | if (null != protectOffsets) |
690 | { | 686 | { |
@@ -695,7 +691,7 @@ namespace WixToolset.Core | |||
695 | Family = family, | 691 | Family = family, |
696 | FTK = file, | 692 | FTK = file, |
697 | RetainOffsets = protectOffsets, | 693 | RetainOffsets = protectOffsets, |
698 | RetainLengths = protectLengths | 694 | RetainLengths = protectLengths, |
699 | }); | 695 | }); |
700 | } | 696 | } |
701 | } | 697 | } |
@@ -797,15 +793,15 @@ namespace WixToolset.Core | |||
797 | 793 | ||
798 | if (!this.Core.EncounteredError) | 794 | if (!this.Core.EncounteredError) |
799 | { | 795 | { |
800 | var tuple = new ExternalFilesTuple(sourceLineNumbers) | 796 | var tuple = this.Core.AddTuple(new ExternalFilesTuple(sourceLineNumbers) |
801 | { | 797 | { |
802 | Family = family, | 798 | Family = family, |
803 | FTK = file, | 799 | FTK = file, |
804 | FilePath = source, | 800 | FilePath = source, |
805 | SymbolPaths = symbols, | 801 | SymbolPaths = symbols, |
806 | IgnoreOffsets = ignoreOffsets, | 802 | IgnoreOffsets = ignoreOffsets, |
807 | IgnoreLengths = ignoreLengths | 803 | IgnoreLengths = ignoreLengths, |
808 | }; | 804 | }); |
809 | 805 | ||
810 | if (null != protectOffsets) | 806 | if (null != protectOffsets) |
811 | { | 807 | { |
@@ -817,8 +813,6 @@ namespace WixToolset.Core | |||
817 | tuple.Order = order; | 813 | tuple.Order = order; |
818 | } | 814 | } |
819 | 815 | ||
820 | this.Core.AddTuple(tuple); | ||
821 | |||
822 | if (null != protectOffsets) | 816 | if (null != protectOffsets) |
823 | { | 817 | { |
824 | this.Core.AddTuple(new FamilyFileRangesTuple(sourceLineNumbers) | 818 | this.Core.AddTuple(new FamilyFileRangesTuple(sourceLineNumbers) |
@@ -826,7 +820,7 @@ namespace WixToolset.Core | |||
826 | Family = family, | 820 | Family = family, |
827 | FTK = file, | 821 | FTK = file, |
828 | RetainOffsets = protectOffsets, | 822 | RetainOffsets = protectOffsets, |
829 | RetainLengths = protectLengths | 823 | RetainLengths = protectLengths, |
830 | }); | 824 | }); |
831 | } | 825 | } |
832 | } | 826 | } |
@@ -1257,7 +1251,7 @@ namespace WixToolset.Core | |||
1257 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Target", "ProductCode")); | 1251 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Target", "ProductCode")); |
1258 | } | 1252 | } |
1259 | target = this.Core.GetAttributeValue(sourceLineNumbers, attrib); | 1253 | target = this.Core.GetAttributeValue(sourceLineNumbers, attrib); |
1260 | this.Core.CreateSimpleReference(sourceLineNumbers, "TargetImages", target); | 1254 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.TargetImages, target); |
1261 | break; | 1255 | break; |
1262 | case "Sequence": | 1256 | case "Sequence": |
1263 | sequence = this.Core.GetAttributeVersionValue(sourceLineNumbers, attrib); | 1257 | sequence = this.Core.GetAttributeVersionValue(sourceLineNumbers, attrib); |
@@ -1288,15 +1282,13 @@ namespace WixToolset.Core | |||
1288 | 1282 | ||
1289 | if (!this.Core.EncounteredError) | 1283 | if (!this.Core.EncounteredError) |
1290 | { | 1284 | { |
1291 | var tuple = new PatchSequenceTuple(sourceLineNumbers) | 1285 | this.Core.AddTuple(new PatchSequenceTuple(sourceLineNumbers) |
1292 | { | 1286 | { |
1293 | PatchFamily = family, | 1287 | PatchFamily = family, |
1294 | Target = target, | 1288 | Target = target, |
1295 | Sequence = sequence, | 1289 | Sequence = sequence, |
1296 | Supersede = attributes | 1290 | Supersede = attributes, |
1297 | }; | 1291 | }); |
1298 | |||
1299 | this.Core.AddTuple(tuple); | ||
1300 | } | 1292 | } |
1301 | } | 1293 | } |
1302 | 1294 | ||
@@ -1306,7 +1298,7 @@ namespace WixToolset.Core | |||
1306 | { | 1298 | { |
1307 | Company = company, | 1299 | Company = company, |
1308 | Property = property, | 1300 | Property = property, |
1309 | Value = value | 1301 | Value = value, |
1310 | }); | 1302 | }); |
1311 | } | 1303 | } |
1312 | } | 1304 | } |
diff --git a/src/WixToolset.Core/Compiler_UI.cs b/src/WixToolset.Core/Compiler_UI.cs index 60e89d12..3d554f12 100644 --- a/src/WixToolset.Core/Compiler_UI.cs +++ b/src/WixToolset.Core/Compiler_UI.cs | |||
@@ -76,7 +76,7 @@ namespace WixToolset.Core | |||
76 | this.ParseDialogElement(child); | 76 | this.ParseDialogElement(child); |
77 | break; | 77 | break; |
78 | case "DialogRef": | 78 | case "DialogRef": |
79 | this.ParseSimpleRefElement(child, "Dialog"); | 79 | this.ParseSimpleRefElement(child, TupleDefinitions.Dialog); |
80 | break; | 80 | break; |
81 | case "EmbeddedUI": | 81 | case "EmbeddedUI": |
82 | if (0 < embeddedUICount) // there can be only one embedded UI | 82 | if (0 < embeddedUICount) // there can be only one embedded UI |
@@ -132,10 +132,10 @@ namespace WixToolset.Core | |||
132 | this.ParsePropertyElement(child); | 132 | this.ParsePropertyElement(child); |
133 | break; | 133 | break; |
134 | case "PropertyRef": | 134 | case "PropertyRef": |
135 | this.ParseSimpleRefElement(child, "Property"); | 135 | this.ParseSimpleRefElement(child, TupleDefinitions.Property); |
136 | break; | 136 | break; |
137 | case "UIRef": | 137 | case "UIRef": |
138 | this.ParseSimpleRefElement(child, "WixUI"); | 138 | this.ParseSimpleRefElement(child, TupleDefinitions.WixUI); |
139 | break; | 139 | break; |
140 | 140 | ||
141 | default: | 141 | default: |
@@ -151,8 +151,7 @@ namespace WixToolset.Core | |||
151 | 151 | ||
152 | if (null != id && !this.Core.EncounteredError) | 152 | if (null != id && !this.Core.EncounteredError) |
153 | { | 153 | { |
154 | var tuple = new WixUITuple(sourceLineNumbers, id); | 154 | this.Core.AddTuple(new WixUITuple(sourceLineNumbers, id)); |
155 | this.Core.AddTuple(tuple); | ||
156 | } | 155 | } |
157 | } | 156 | } |
158 | 157 | ||
@@ -160,7 +159,7 @@ namespace WixToolset.Core | |||
160 | /// Parses a list item element. | 159 | /// Parses a list item element. |
161 | /// </summary> | 160 | /// </summary> |
162 | /// <param name="node">Element to parse.</param> | 161 | /// <param name="node">Element to parse.</param> |
163 | /// <param name="table">Table to add row to.</param> | 162 | /// <param name="tupleType">Type of tuple to create.</param> |
164 | /// <param name="property">Identifier of property referred to by list item.</param> | 163 | /// <param name="property">Identifier of property referred to by list item.</param> |
165 | /// <param name="order">Relative order of list items.</param> | 164 | /// <param name="order">Relative order of list items.</param> |
166 | private void ParseListItemElement(XElement node, TupleDefinitionType tupleType, string property, ref int order) | 165 | private void ParseListItemElement(XElement node, TupleDefinitionType tupleType, string property, ref int order) |
@@ -180,7 +179,7 @@ namespace WixToolset.Core | |||
180 | if (TupleDefinitionType.ListView == tupleType) | 179 | if (TupleDefinitionType.ListView == tupleType) |
181 | { | 180 | { |
182 | icon = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 181 | icon = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
183 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", icon); | 182 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, icon); |
184 | } | 183 | } |
185 | else | 184 | else |
186 | { | 185 | { |
@@ -213,14 +212,42 @@ namespace WixToolset.Core | |||
213 | 212 | ||
214 | if (!this.Core.EncounteredError) | 213 | if (!this.Core.EncounteredError) |
215 | { | 214 | { |
216 | var tuple = this.Core.CreateTuple(sourceLineNumbers, tupleType); | 215 | switch (tupleType) |
217 | tuple.Set(0, property); | ||
218 | tuple.Set(1, ++order); | ||
219 | tuple.Set(2, value); | ||
220 | tuple.Set(3, text); | ||
221 | if (null != icon) | ||
222 | { | 216 | { |
223 | tuple.Set(4, icon); | 217 | case TupleDefinitionType.ComboBox: |
218 | this.Core.AddTuple(new ComboBoxTuple(sourceLineNumbers) | ||
219 | { | ||
220 | Property = property, | ||
221 | Order = ++order, | ||
222 | Value = value, | ||
223 | Text = text, | ||
224 | }); | ||
225 | break; | ||
226 | case TupleDefinitionType.ListBox: | ||
227 | this.Core.AddTuple(new ListBoxTuple(sourceLineNumbers) | ||
228 | { | ||
229 | Property = property, | ||
230 | Order = ++order, | ||
231 | Value = value, | ||
232 | Text = text, | ||
233 | }); | ||
234 | break; | ||
235 | case TupleDefinitionType.ListView: | ||
236 | var tuple = this.Core.AddTuple(new ListViewTuple(sourceLineNumbers) | ||
237 | { | ||
238 | Property = property, | ||
239 | Order = ++order, | ||
240 | Value = value, | ||
241 | Text = text, | ||
242 | }); | ||
243 | |||
244 | if (null != icon) | ||
245 | { | ||
246 | tuple.BinaryRef = icon; | ||
247 | } | ||
248 | break; | ||
249 | default: | ||
250 | throw new ArgumentOutOfRangeException(nameof(tupleType)); | ||
224 | } | 251 | } |
225 | } | 252 | } |
226 | } | 253 | } |
@@ -257,7 +284,7 @@ namespace WixToolset.Core | |||
257 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Icon", "Text")); | 284 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Icon", "Text")); |
258 | } | 285 | } |
259 | text = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 286 | text = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
260 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", text); | 287 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, text); |
261 | type = RadioButtonType.Bitmap; | 288 | type = RadioButtonType.Bitmap; |
262 | break; | 289 | break; |
263 | case "Height": | 290 | case "Height": |
@@ -272,7 +299,7 @@ namespace WixToolset.Core | |||
272 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Bitmap", "Text")); | 299 | this.Core.Write(ErrorMessages.IllegalAttributeWithOtherAttributes(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, "Bitmap", "Text")); |
273 | } | 300 | } |
274 | text = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 301 | text = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
275 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", text); | 302 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, text); |
276 | type = RadioButtonType.Icon; | 303 | type = RadioButtonType.Icon; |
277 | break; | 304 | break; |
278 | case "Text": | 305 | case "Text": |
@@ -338,21 +365,19 @@ namespace WixToolset.Core | |||
338 | 365 | ||
339 | if (!this.Core.EncounteredError) | 366 | if (!this.Core.EncounteredError) |
340 | { | 367 | { |
341 | var tuple = new RadioButtonTuple(sourceLineNumbers) | 368 | var tuple = this.Core.AddTuple(new RadioButtonTuple(sourceLineNumbers) |
342 | { | 369 | { |
343 | Property = property, | 370 | Property = property, |
344 | Order = ++order, | 371 | Order = ++order, |
345 | Value = value, | 372 | Value = value, |
346 | Text = text, | 373 | Text = text, |
347 | Help = (null != tooltip || null != help) ? String.Concat(tooltip, "|", help) : null | 374 | Help = (null != tooltip || null != help) ? String.Concat(tooltip, "|", help) : null |
348 | }; | 375 | }); |
349 | 376 | ||
350 | tuple.Set((int)RadioButtonTupleFields.X, x); | 377 | tuple.Set((int)RadioButtonTupleFields.X, x); |
351 | tuple.Set((int)RadioButtonTupleFields.Y, y); | 378 | tuple.Set((int)RadioButtonTupleFields.Y, y); |
352 | tuple.Set((int)RadioButtonTupleFields.Width, width); | 379 | tuple.Set((int)RadioButtonTupleFields.Width, width); |
353 | tuple.Set((int)RadioButtonTupleFields.Height, height); | 380 | tuple.Set((int)RadioButtonTupleFields.Height, height); |
354 | |||
355 | this.Core.AddTuple(tuple); | ||
356 | } | 381 | } |
357 | 382 | ||
358 | return type; | 383 | return type; |
@@ -376,7 +401,7 @@ namespace WixToolset.Core | |||
376 | { | 401 | { |
377 | case "Id": | 402 | case "Id": |
378 | action = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 403 | action = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
379 | this.Core.CreateSimpleReference(sourceLineNumbers, "WixAction", "InstallExecuteSequence", action); | 404 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.WixAction, "InstallExecuteSequence", action); |
380 | break; | 405 | break; |
381 | default: | 406 | default: |
382 | this.Core.UnexpectedAttribute(node, attrib); | 407 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -439,7 +464,7 @@ namespace WixToolset.Core | |||
439 | break; | 464 | break; |
440 | case "Feature": | 465 | case "Feature": |
441 | feature = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 466 | feature = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
442 | this.Core.CreateSimpleReference(sourceLineNumbers, "Feature", feature); | 467 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Feature, feature); |
443 | break; | 468 | break; |
444 | default: | 469 | default: |
445 | this.Core.UnexpectedAttribute(node, attrib); | 470 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -486,14 +511,12 @@ namespace WixToolset.Core | |||
486 | 511 | ||
487 | if (!this.Core.EncounteredError) | 512 | if (!this.Core.EncounteredError) |
488 | { | 513 | { |
489 | var tuple = new BillboardTuple(sourceLineNumbers, id) | 514 | this.Core.AddTuple(new BillboardTuple(sourceLineNumbers, id) |
490 | { | 515 | { |
491 | FeatureRef = feature, | 516 | FeatureRef = feature, |
492 | Action = action, | 517 | Action = action, |
493 | Ordering = order | 518 | Ordering = order |
494 | }; | 519 | }); |
495 | |||
496 | this.Core.AddTuple(tuple); | ||
497 | } | 520 | } |
498 | } | 521 | } |
499 | 522 | ||
@@ -501,7 +524,7 @@ namespace WixToolset.Core | |||
501 | /// Parses a control group element. | 524 | /// Parses a control group element. |
502 | /// </summary> | 525 | /// </summary> |
503 | /// <param name="node">Element to parse.</param> | 526 | /// <param name="node">Element to parse.</param> |
504 | /// <param name="table">Table referred to by control group.</param> | 527 | /// <param name="tupleType">Tuple type referred to by control group.</param> |
505 | /// <param name="childTag">Expected child elements.</param> | 528 | /// <param name="childTag">Expected child elements.</param> |
506 | private void ParseControlGroupElement(XElement node, TupleDefinitionType tupleType, string childTag) | 529 | private void ParseControlGroupElement(XElement node, TupleDefinitionType tupleType, string childTag) |
507 | { | 530 | { |
@@ -584,7 +607,7 @@ namespace WixToolset.Core | |||
584 | { | 607 | { |
585 | case "Property": | 608 | case "Property": |
586 | property = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 609 | property = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
587 | this.Core.CreateSimpleReference(sourceLineNumbers, "Property", property); | 610 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Property, property); |
588 | break; | 611 | break; |
589 | default: | 612 | default: |
590 | this.Core.UnexpectedAttribute(node, attrib); | 613 | this.Core.UnexpectedAttribute(node, attrib); |
@@ -677,14 +700,12 @@ namespace WixToolset.Core | |||
677 | 700 | ||
678 | if (!this.Core.EncounteredError) | 701 | if (!this.Core.EncounteredError) |
679 | { | 702 | { |
680 | var tuple = new ActionTextTuple(sourceLineNumbers) | 703 | this.Core.AddTuple(new ActionTextTuple(sourceLineNumbers) |
681 | { | 704 | { |
682 | Action = action, | 705 | Action = action, |
683 | Description = Common.GetInnerText(node), | 706 | Description = Common.GetInnerText(node), |
684 | Template = template | 707 | Template = template, |
685 | }; | 708 | }); |
686 | |||
687 | this.Core.AddTuple(tuple); | ||
688 | } | 709 | } |
689 | } | 710 | } |
690 | 711 | ||
@@ -729,12 +750,10 @@ namespace WixToolset.Core | |||
729 | 750 | ||
730 | if (!this.Core.EncounteredError) | 751 | if (!this.Core.EncounteredError) |
731 | { | 752 | { |
732 | var tuple = new UITextTuple(sourceLineNumbers, id) | 753 | this.Core.AddTuple(new UITextTuple(sourceLineNumbers, id) |
733 | { | 754 | { |
734 | Text = text, | 755 | Text = text, |
735 | }; | 756 | }); |
736 | |||
737 | this.Core.AddTuple(tuple); | ||
738 | } | 757 | } |
739 | } | 758 | } |
740 | 759 | ||
@@ -836,7 +855,7 @@ namespace WixToolset.Core | |||
836 | 855 | ||
837 | if (!this.Core.EncounteredError) | 856 | if (!this.Core.EncounteredError) |
838 | { | 857 | { |
839 | var tuple = new TextStyleTuple(sourceLineNumbers, id) | 858 | var tuple = this.Core.AddTuple(new TextStyleTuple(sourceLineNumbers, id) |
840 | { | 859 | { |
841 | FaceName = faceName, | 860 | FaceName = faceName, |
842 | Red = red, | 861 | Red = red, |
@@ -846,11 +865,9 @@ namespace WixToolset.Core | |||
846 | Italic = italic, | 865 | Italic = italic, |
847 | Strike = strike, | 866 | Strike = strike, |
848 | Underline = underline, | 867 | Underline = underline, |
849 | }; | 868 | }); |
850 | 869 | ||
851 | tuple.Set((int)TextStyleTupleFields.Size, size); | 870 | tuple.Set((int)TextStyleTupleFields.Size, size); |
852 | |||
853 | this.Core.AddTuple(tuple); | ||
854 | } | 871 | } |
855 | } | 872 | } |
856 | 873 | ||
@@ -994,7 +1011,7 @@ namespace WixToolset.Core | |||
994 | 1011 | ||
995 | if (!this.Core.EncounteredError) | 1012 | if (!this.Core.EncounteredError) |
996 | { | 1013 | { |
997 | var tuple = new DialogTuple(sourceLineNumbers, id) | 1014 | this.Core.AddTuple(new DialogTuple(sourceLineNumbers, id) |
998 | { | 1015 | { |
999 | HCentering = x, | 1016 | HCentering = x, |
1000 | VCentering = y, | 1017 | VCentering = y, |
@@ -1015,9 +1032,7 @@ namespace WixToolset.Core | |||
1015 | FirstControlRef = firstControl, | 1032 | FirstControlRef = firstControl, |
1016 | DefaultControlRef = defaultControl, | 1033 | DefaultControlRef = defaultControl, |
1017 | CancelControlRef = cancelControl, | 1034 | CancelControlRef = cancelControl, |
1018 | }; | 1035 | }); |
1019 | |||
1020 | this.Core.AddTuple(tuple); | ||
1021 | } | 1036 | } |
1022 | } | 1037 | } |
1023 | 1038 | ||
@@ -1083,7 +1098,7 @@ namespace WixToolset.Core | |||
1083 | notTabbable = true; | 1098 | notTabbable = true; |
1084 | disabled = true; | 1099 | disabled = true; |
1085 | 1100 | ||
1086 | this.Core.EnsureTable(sourceLineNumbers, "Billboard"); | 1101 | this.Core.EnsureTable(sourceLineNumbers, WindowsInstallerTableDefinitions.Billboard); |
1087 | break; | 1102 | break; |
1088 | case "Bitmap": | 1103 | case "Bitmap": |
1089 | specialAttributes = BitmapControlAttributes; | 1104 | specialAttributes = BitmapControlAttributes; |
@@ -1449,17 +1464,15 @@ namespace WixToolset.Core | |||
1449 | } | 1464 | } |
1450 | else if (!String.IsNullOrEmpty(property)) | 1465 | else if (!String.IsNullOrEmpty(property)) |
1451 | { | 1466 | { |
1452 | var checkBoxTuple = new CheckBoxTuple(sourceLineNumbers) | 1467 | this.Core.AddTuple(new CheckBoxTuple(sourceLineNumbers) |
1453 | { | 1468 | { |
1454 | Property = property, | 1469 | Property = property, |
1455 | Value = checkboxValue | 1470 | Value = checkboxValue, |
1456 | }; | 1471 | }); |
1457 | |||
1458 | this.Core.AddTuple(checkBoxTuple); | ||
1459 | } | 1472 | } |
1460 | else | 1473 | else |
1461 | { | 1474 | { |
1462 | this.Core.CreateSimpleReference(sourceLineNumbers, "CheckBox", checkBoxPropertyRef); | 1475 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.CheckBox, checkBoxPropertyRef); |
1463 | } | 1476 | } |
1464 | } | 1477 | } |
1465 | 1478 | ||
@@ -1467,7 +1480,7 @@ namespace WixToolset.Core | |||
1467 | 1480 | ||
1468 | if (TupleDefinitionType.BBControl == tupleType) | 1481 | if (TupleDefinitionType.BBControl == tupleType) |
1469 | { | 1482 | { |
1470 | var bbTuple = new BBControlTuple(sourceLineNumbers, id) | 1483 | var bbTuple = this.Core.AddTuple(new BBControlTuple(sourceLineNumbers, id) |
1471 | { | 1484 | { |
1472 | BillboardRef = dialog, | 1485 | BillboardRef = dialog, |
1473 | BBControl = controlId.Id, | 1486 | BBControl = controlId.Id, |
@@ -1482,21 +1495,19 @@ namespace WixToolset.Core | |||
1482 | Sunken = sunken, | 1495 | Sunken = sunken, |
1483 | Visible = !hidden, | 1496 | Visible = !hidden, |
1484 | Text = text, | 1497 | Text = text, |
1485 | SourceFile = sourceFile | 1498 | SourceFile = sourceFile, |
1486 | }; | 1499 | }); |
1487 | 1500 | ||
1488 | bbTuple.Set((int)BBControlTupleFields.X, x); | 1501 | bbTuple.Set((int)BBControlTupleFields.X, x); |
1489 | bbTuple.Set((int)BBControlTupleFields.Y, y); | 1502 | bbTuple.Set((int)BBControlTupleFields.Y, y); |
1490 | bbTuple.Set((int)BBControlTupleFields.Width, width); | 1503 | bbTuple.Set((int)BBControlTupleFields.Width, width); |
1491 | bbTuple.Set((int)BBControlTupleFields.Height, height); | 1504 | bbTuple.Set((int)BBControlTupleFields.Height, height); |
1492 | 1505 | ||
1493 | this.Core.AddTuple(bbTuple); | ||
1494 | |||
1495 | tuple = bbTuple; | 1506 | tuple = bbTuple; |
1496 | } | 1507 | } |
1497 | else | 1508 | else |
1498 | { | 1509 | { |
1499 | var controlTuple = new ControlTuple(sourceLineNumbers, id) | 1510 | var controlTuple = this.Core.AddTuple(new ControlTuple(sourceLineNumbers, id) |
1500 | { | 1511 | { |
1501 | DialogRef = dialog, | 1512 | DialogRef = dialog, |
1502 | Control = controlId.Id, | 1513 | Control = controlId.Id, |
@@ -1514,15 +1525,13 @@ namespace WixToolset.Core | |||
1514 | Text = text, | 1525 | Text = text, |
1515 | Help = (null == tooltip && null == help) ? null : String.Concat(tooltip, "|", help), // Separator is required, even if only one is non-null.}; | 1526 | Help = (null == tooltip && null == help) ? null : String.Concat(tooltip, "|", help), // Separator is required, even if only one is non-null.}; |
1516 | SourceFile = sourceFile | 1527 | SourceFile = sourceFile |
1517 | }; | 1528 | }); |
1518 | 1529 | ||
1519 | controlTuple.Set((int)BBControlTupleFields.X, x); | 1530 | controlTuple.Set((int)BBControlTupleFields.X, x); |
1520 | controlTuple.Set((int)BBControlTupleFields.Y, y); | 1531 | controlTuple.Set((int)BBControlTupleFields.Y, y); |
1521 | controlTuple.Set((int)BBControlTupleFields.Width, width); | 1532 | controlTuple.Set((int)BBControlTupleFields.Width, width); |
1522 | controlTuple.Set((int)BBControlTupleFields.Height, height); | 1533 | controlTuple.Set((int)BBControlTupleFields.Height, height); |
1523 | 1534 | ||
1524 | this.Core.AddTuple(controlTuple); | ||
1525 | |||
1526 | tuple = controlTuple; | 1535 | tuple = controlTuple; |
1527 | } | 1536 | } |
1528 | } | 1537 | } |
@@ -1552,7 +1561,7 @@ namespace WixToolset.Core | |||
1552 | // add a reference if the identifier of the binary entry is known during compilation | 1561 | // add a reference if the identifier of the binary entry is known during compilation |
1553 | if (("Bitmap" == controlType || "Icon" == controlType) && Common.IsIdentifier(text)) | 1562 | if (("Bitmap" == controlType || "Icon" == controlType) && Common.IsIdentifier(text)) |
1554 | { | 1563 | { |
1555 | this.Core.CreateSimpleReference(sourceLineNumbers, "Binary", text); | 1564 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Binary, text); |
1556 | } | 1565 | } |
1557 | } | 1566 | } |
1558 | 1567 | ||
@@ -1593,7 +1602,7 @@ namespace WixToolset.Core | |||
1593 | this.Core.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); | 1602 | this.Core.Write(ErrorMessages.IllegalAttributeWhenNested(sourceLineNumbers, node.Name.LocalName, attrib.Name.LocalName, node.Parent.Name.LocalName)); |
1594 | } | 1603 | } |
1595 | dialog = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 1604 | dialog = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
1596 | this.Core.CreateSimpleReference(sourceLineNumbers, "Dialog", dialog); | 1605 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, dialog); |
1597 | break; | 1606 | break; |
1598 | case "Event": | 1607 | case "Event": |
1599 | controlEvent = Compiler.UppercaseFirstChar(this.Core.GetAttributeValue(sourceLineNumbers, attrib)); | 1608 | controlEvent = Compiler.UppercaseFirstChar(this.Core.GetAttributeValue(sourceLineNumbers, attrib)); |
@@ -1656,7 +1665,7 @@ namespace WixToolset.Core | |||
1656 | 1665 | ||
1657 | if (!this.Core.EncounteredError) | 1666 | if (!this.Core.EncounteredError) |
1658 | { | 1667 | { |
1659 | var tuple = new ControlEventTuple(sourceLineNumbers) | 1668 | this.Core.AddTuple(new ControlEventTuple(sourceLineNumbers) |
1660 | { | 1669 | { |
1661 | DialogRef = dialog, | 1670 | DialogRef = dialog, |
1662 | ControlRef = control, | 1671 | ControlRef = control, |
@@ -1664,9 +1673,7 @@ namespace WixToolset.Core | |||
1664 | Argument = argument, | 1673 | Argument = argument, |
1665 | Condition = condition, | 1674 | Condition = condition, |
1666 | Ordering = order | 1675 | Ordering = order |
1667 | }; | 1676 | }); |
1668 | |||
1669 | this.Core.AddTuple(tuple); | ||
1670 | } | 1677 | } |
1671 | 1678 | ||
1672 | if ("DoAction" == controlEvent && null != argument) | 1679 | if ("DoAction" == controlEvent && null != argument) |
@@ -1675,14 +1682,14 @@ namespace WixToolset.Core | |||
1675 | // to the custom action. | 1682 | // to the custom action. |
1676 | if (!WindowsInstallerStandard.IsStandardAction(argument) && !Common.ContainsProperty(argument)) | 1683 | if (!WindowsInstallerStandard.IsStandardAction(argument) && !Common.ContainsProperty(argument)) |
1677 | { | 1684 | { |
1678 | this.Core.CreateSimpleReference(sourceLineNumbers, "CustomAction", argument); | 1685 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.CustomAction, argument); |
1679 | } | 1686 | } |
1680 | } | 1687 | } |
1681 | 1688 | ||
1682 | // if we're referring to a dialog but not through a property, add it to the references | 1689 | // if we're referring to a dialog but not through a property, add it to the references |
1683 | if (("NewDialog" == controlEvent || "SpawnDialog" == controlEvent || "SpawnWaitDialog" == controlEvent || "SelectionBrowse" == controlEvent) && Common.IsIdentifier(argument)) | 1690 | if (("NewDialog" == controlEvent || "SpawnDialog" == controlEvent || "SpawnWaitDialog" == controlEvent || "SelectionBrowse" == controlEvent) && Common.IsIdentifier(argument)) |
1684 | { | 1691 | { |
1685 | this.Core.CreateSimpleReference(sourceLineNumbers, "Dialog", argument); | 1692 | this.Core.CreateSimpleReference(sourceLineNumbers, TupleDefinitions.Dialog, argument); |
1686 | } | 1693 | } |
1687 | } | 1694 | } |
1688 | 1695 | ||
@@ -1725,15 +1732,13 @@ namespace WixToolset.Core | |||
1725 | 1732 | ||
1726 | if (!this.Core.EncounteredError) | 1733 | if (!this.Core.EncounteredError) |
1727 | { | 1734 | { |
1728 | var tuple = new EventMappingTuple(sourceLineNumbers) | 1735 | this.Core.AddTuple(new EventMappingTuple(sourceLineNumbers) |
1729 | { | 1736 | { |
1730 | DialogRef = dialog, | 1737 | DialogRef = dialog, |
1731 | ControlRef = control, | 1738 | ControlRef = control, |
1732 | Event = eventMapping, | 1739 | Event = eventMapping, |
1733 | Attribute = controlAttribute | 1740 | Attribute = controlAttribute, |
1734 | }; ; | 1741 | }); |
1735 | |||
1736 | this.Core.AddTuple(tuple); | ||
1737 | } | 1742 | } |
1738 | } | 1743 | } |
1739 | } | 1744 | } |
diff --git a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs index f07e4638..3c092bd4 100644 --- a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs +++ b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs | |||
@@ -54,7 +54,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
54 | public void CreateComplexReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, ComplexReferenceParentType parentType, string parentId, string parentLanguage, ComplexReferenceChildType childType, string childId, bool isPrimary) | 54 | public void CreateComplexReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, ComplexReferenceParentType parentType, string parentId, string parentLanguage, ComplexReferenceChildType childType, string childId, bool isPrimary) |
55 | { | 55 | { |
56 | 56 | ||
57 | var tuple = new WixComplexReferenceTuple(sourceLineNumbers) | 57 | section.AddTuple(new WixComplexReferenceTuple(sourceLineNumbers) |
58 | { | 58 | { |
59 | Parent = parentId, | 59 | Parent = parentId, |
60 | ParentType = parentType, | 60 | ParentType = parentType, |
@@ -62,9 +62,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
62 | Child = childId, | 62 | Child = childId, |
63 | ChildType = childType, | 63 | ChildType = childType, |
64 | IsPrimary = isPrimary | 64 | IsPrimary = isPrimary |
65 | }; | 65 | }); |
66 | |||
67 | section.Tuples.Add(tuple); | ||
68 | 66 | ||
69 | this.CreateWixGroupTuple(section, sourceLineNumbers, parentType, parentId, childType, childId); | 67 | this.CreateWixGroupTuple(section, sourceLineNumbers, parentType, parentId, childType, childId); |
70 | } | 68 | } |
@@ -100,24 +98,22 @@ namespace WixToolset.Core.ExtensibilityServices | |||
100 | } | 98 | } |
101 | } | 99 | } |
102 | 100 | ||
103 | var tuple = new DirectoryTuple(sourceLineNumbers, id) | 101 | var tuple = section.AddTuple(new DirectoryTuple(sourceLineNumbers, id) |
104 | { | 102 | { |
105 | ParentDirectoryRef = parentId, | 103 | ParentDirectoryRef = parentId, |
106 | Name = name, | 104 | Name = name, |
107 | ShortName = shortName, | 105 | ShortName = shortName, |
108 | SourceName = sourceName, | 106 | SourceName = sourceName, |
109 | SourceShortName = shortSourceName | 107 | SourceShortName = shortSourceName |
110 | }; | 108 | }); |
111 | |||
112 | section.Tuples.Add(tuple); | ||
113 | 109 | ||
114 | return id; | 110 | return tuple.Id; |
115 | } | 111 | } |
116 | 112 | ||
117 | public string CreateDirectoryReferenceFromInlineSyntax(IntermediateSection section, SourceLineNumber sourceLineNumbers, string parentId, XAttribute attribute, ISet<string> sectionInlinedDirectoryIds) | 113 | public string CreateDirectoryReferenceFromInlineSyntax(IntermediateSection section, SourceLineNumber sourceLineNumbers, string parentId, XAttribute attribute, ISet<string> sectionInlinedDirectoryIds) |
118 | { | 114 | { |
119 | string id = null; | 115 | string id = null; |
120 | string[] inlineSyntax = this.GetAttributeInlineDirectorySyntax(sourceLineNumbers, attribute, true); | 116 | var inlineSyntax = this.GetAttributeInlineDirectorySyntax(sourceLineNumbers, attribute, true); |
121 | 117 | ||
122 | if (null != inlineSyntax) | 118 | if (null != inlineSyntax) |
123 | { | 119 | { |
@@ -126,13 +122,13 @@ namespace WixToolset.Core.ExtensibilityServices | |||
126 | if (1 == inlineSyntax.Length) | 122 | if (1 == inlineSyntax.Length) |
127 | { | 123 | { |
128 | id = inlineSyntax[0]; | 124 | id = inlineSyntax[0]; |
129 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.Directory), id); | 125 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.Directory, id); |
130 | } | 126 | } |
131 | else // start creating tuples for the entries in the inline syntax | 127 | else // start creating tuples for the entries in the inline syntax |
132 | { | 128 | { |
133 | id = parentId; | 129 | id = parentId; |
134 | 130 | ||
135 | int pathStartsAt = 0; | 131 | var pathStartsAt = 0; |
136 | if (inlineSyntax[0].EndsWith(":")) | 132 | if (inlineSyntax[0].EndsWith(":")) |
137 | { | 133 | { |
138 | // TODO: should overriding the parent identifier with a specific id be an error or a warning or just let it slide? | 134 | // TODO: should overriding the parent identifier with a specific id be an error or a warning or just let it slide? |
@@ -142,14 +138,14 @@ namespace WixToolset.Core.ExtensibilityServices | |||
142 | //} | 138 | //} |
143 | 139 | ||
144 | id = inlineSyntax[0].TrimEnd(':'); | 140 | id = inlineSyntax[0].TrimEnd(':'); |
145 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.Directory), id); | 141 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.Directory, id); |
146 | 142 | ||
147 | pathStartsAt = 1; | 143 | pathStartsAt = 1; |
148 | } | 144 | } |
149 | 145 | ||
150 | for (int i = pathStartsAt; i < inlineSyntax.Length; ++i) | 146 | for (var i = pathStartsAt; i < inlineSyntax.Length; ++i) |
151 | { | 147 | { |
152 | Identifier inlineId = this.CreateDirectoryTuple(section, sourceLineNumbers, null, id, inlineSyntax[i], sectionInlinedDirectoryIds); | 148 | var inlineId = this.CreateDirectoryTuple(section, sourceLineNumbers, null, id, inlineSyntax[i], sectionInlinedDirectoryIds); |
153 | id = inlineId.Id; | 149 | id = inlineId.Id; |
154 | } | 150 | } |
155 | } | 151 | } |
@@ -206,29 +202,25 @@ namespace WixToolset.Core.ExtensibilityServices | |||
206 | 202 | ||
207 | var id = this.CreateIdentifier("reg", componentId, ((int)root).ToString(CultureInfo.InvariantCulture.NumberFormat), key.ToLowerInvariant(), (null != name ? name.ToLowerInvariant() : name)); | 203 | var id = this.CreateIdentifier("reg", componentId, ((int)root).ToString(CultureInfo.InvariantCulture.NumberFormat), key.ToLowerInvariant(), (null != name ? name.ToLowerInvariant() : name)); |
208 | 204 | ||
209 | var tuple = new RegistryTuple(sourceLineNumbers, id) | 205 | var tuple = section.AddTuple(new RegistryTuple(sourceLineNumbers, id) |
210 | { | 206 | { |
211 | Root = root, | 207 | Root = root, |
212 | Key = key, | 208 | Key = key, |
213 | Name = name, | 209 | Name = name, |
214 | Value = value, | 210 | Value = value, |
215 | ComponentRef = componentId, | 211 | ComponentRef = componentId, |
216 | }; | 212 | }); |
217 | |||
218 | section.Tuples.Add(tuple); | ||
219 | 213 | ||
220 | return id; | 214 | return tuple.Id; |
221 | } | 215 | } |
222 | 216 | ||
223 | public void CreateSimpleReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, string tupleName, params string[] primaryKeys) | 217 | public void CreateSimpleReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, string tupleName, params string[] primaryKeys) |
224 | { | 218 | { |
225 | var tuple = new WixSimpleReferenceTuple(sourceLineNumbers) | 219 | section.AddTuple(new WixSimpleReferenceTuple(sourceLineNumbers) |
226 | { | 220 | { |
227 | Table = tupleName, | 221 | Table = tupleName, |
228 | PrimaryKeys = String.Join("/", primaryKeys) | 222 | PrimaryKeys = String.Join("/", primaryKeys) |
229 | }; | 223 | }); |
230 | |||
231 | section.Tuples.Add(tuple); | ||
232 | } | 224 | } |
233 | 225 | ||
234 | public void CreateSimpleReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, IntermediateTupleDefinition tupleDefinition, params string[] primaryKeys) | 226 | public void CreateSimpleReference(IntermediateSection section, SourceLineNumber sourceLineNumbers, IntermediateTupleDefinition tupleDefinition, params string[] primaryKeys) |
@@ -254,15 +246,13 @@ namespace WixToolset.Core.ExtensibilityServices | |||
254 | throw new ArgumentNullException("childId"); | 246 | throw new ArgumentNullException("childId"); |
255 | } | 247 | } |
256 | 248 | ||
257 | var tuple = new WixGroupTuple(sourceLineNumbers) | 249 | section.AddTuple(new WixGroupTuple(sourceLineNumbers) |
258 | { | 250 | { |
259 | ParentId = parentId, | 251 | ParentId = parentId, |
260 | ParentType = parentType, | 252 | ParentType = parentType, |
261 | ChildId = childId, | 253 | ChildId = childId, |
262 | ChildType = childType, | 254 | ChildType = childType, |
263 | }; | 255 | }); |
264 | |||
265 | section.Tuples.Add(tuple); | ||
266 | } | 256 | } |
267 | 257 | ||
268 | public void CreateWixSearchTuple(IntermediateSection section, SourceLineNumber sourceLineNumbers, string elementName, Identifier id, string variable, string condition, string after, string bundleExtensionId) | 258 | public void CreateWixSearchTuple(IntermediateSection section, SourceLineNumber sourceLineNumbers, string elementName, Identifier id, string variable, string condition, string after, string bundleExtensionId) |
@@ -273,7 +263,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
273 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, elementName, "Variable")); | 263 | this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, elementName, "Variable")); |
274 | } | 264 | } |
275 | 265 | ||
276 | section.Tuples.Add(new WixSearchTuple(sourceLineNumbers, id) | 266 | section.AddTuple(new WixSearchTuple(sourceLineNumbers, id) |
277 | { | 267 | { |
278 | Variable = variable, | 268 | Variable = variable, |
279 | Condition = condition, | 269 | Condition = condition, |
@@ -282,20 +272,20 @@ namespace WixToolset.Core.ExtensibilityServices | |||
282 | 272 | ||
283 | if (after != null) | 273 | if (after != null) |
284 | { | 274 | { |
285 | this.CreateSimpleReference(section, sourceLineNumbers, "WixSearch", after); | 275 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixSearch, after); |
286 | // TODO: We're currently defaulting to "always run after", which we will need to change... | 276 | // TODO: We're currently defaulting to "always run after", which we will need to change... |
287 | this.CreateWixSearchRelationTuple(section, sourceLineNumbers, id, after, 2); | 277 | this.CreateWixSearchRelationTuple(section, sourceLineNumbers, id, after, 2); |
288 | } | 278 | } |
289 | 279 | ||
290 | if (!String.IsNullOrEmpty(bundleExtensionId)) | 280 | if (!String.IsNullOrEmpty(bundleExtensionId)) |
291 | { | 281 | { |
292 | this.CreateSimpleReference(section, sourceLineNumbers, "WixBundleExtension", bundleExtensionId); | 282 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixBundleExtension, bundleExtensionId); |
293 | } | 283 | } |
294 | } | 284 | } |
295 | 285 | ||
296 | public void CreateWixSearchRelationTuple(IntermediateSection section, SourceLineNumber sourceLineNumbers, Identifier id, string parentId, int attributes) | 286 | public void CreateWixSearchRelationTuple(IntermediateSection section, SourceLineNumber sourceLineNumbers, Identifier id, string parentId, int attributes) |
297 | { | 287 | { |
298 | section.Tuples.Add(new WixSearchRelationTuple(sourceLineNumbers, id) | 288 | section.AddTuple(new WixSearchRelationTuple(sourceLineNumbers, id) |
299 | { | 289 | { |
300 | ParentSearchRef = parentId, | 290 | ParentSearchRef = parentId, |
301 | Attributes = attributes, | 291 | Attributes = attributes, |
@@ -351,13 +341,13 @@ namespace WixToolset.Core.ExtensibilityServices | |||
351 | } | 341 | } |
352 | 342 | ||
353 | // collect all the data | 343 | // collect all the data |
354 | List<string> strings = new List<string>(1 + args.Length); | 344 | var strings = new List<string>(1 + args.Length); |
355 | strings.Add(longName); | 345 | strings.Add(longName); |
356 | strings.AddRange(args); | 346 | strings.AddRange(args); |
357 | 347 | ||
358 | // prepare for hashing | 348 | // prepare for hashing |
359 | string stringData = String.Join("|", strings); | 349 | var stringData = String.Join("|", strings); |
360 | byte[] data = Encoding.UTF8.GetBytes(stringData); | 350 | var data = Encoding.UTF8.GetBytes(stringData); |
361 | 351 | ||
362 | // hash the data | 352 | // hash the data |
363 | byte[] hash; | 353 | byte[] hash; |
@@ -367,12 +357,12 @@ namespace WixToolset.Core.ExtensibilityServices | |||
367 | } | 357 | } |
368 | 358 | ||
369 | // generate the short file/directory name without an extension | 359 | // generate the short file/directory name without an extension |
370 | StringBuilder shortName = new StringBuilder(Convert.ToBase64String(hash)); | 360 | var shortName = new StringBuilder(Convert.ToBase64String(hash)); |
371 | shortName.Remove(8, shortName.Length - 8).Replace('+', '-').Replace('/', '_'); | 361 | shortName.Remove(8, shortName.Length - 8).Replace('+', '-').Replace('/', '_'); |
372 | 362 | ||
373 | if (keepExtension) | 363 | if (keepExtension) |
374 | { | 364 | { |
375 | string extension = Path.GetExtension(longName); | 365 | var extension = Path.GetExtension(longName); |
376 | 366 | ||
377 | if (4 < extension.Length) | 367 | if (4 < extension.Length) |
378 | { | 368 | { |
@@ -405,9 +395,9 @@ namespace WixToolset.Core.ExtensibilityServices | |||
405 | 395 | ||
406 | public void EnsureTable(IntermediateSection section, SourceLineNumber sourceLineNumbers, string tableName) | 396 | public void EnsureTable(IntermediateSection section, SourceLineNumber sourceLineNumbers, string tableName) |
407 | { | 397 | { |
408 | section.Tuples.Add(new WixEnsureTableTuple(sourceLineNumbers) | 398 | section.AddTuple(new WixEnsureTableTuple(sourceLineNumbers) |
409 | { | 399 | { |
410 | Table = tableName | 400 | Table = tableName, |
411 | }); | 401 | }); |
412 | 402 | ||
413 | if (this.Creator == null) | 403 | if (this.Creator == null) |
@@ -419,7 +409,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
419 | // We don't add custom table definitions to the tableDefinitions collection, | 409 | // We don't add custom table definitions to the tableDefinitions collection, |
420 | // so if it's not in there, it better be a custom table. If the Id is just wrong, | 410 | // so if it's not in there, it better be a custom table. If the Id is just wrong, |
421 | // instead of a custom table, we get an unresolved reference at link time. | 411 | // instead of a custom table, we get an unresolved reference at link time. |
422 | if (!this.Creator.TryGetTupleDefinitionByName(tableName, out var ignored)) | 412 | if (!this.Creator.TryGetTupleDefinitionByName(tableName, out var _)) |
423 | { | 413 | { |
424 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixCustomTable, tableName); | 414 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixCustomTable, tableName); |
425 | } | 415 | } |
@@ -432,8 +422,8 @@ namespace WixToolset.Core.ExtensibilityServices | |||
432 | throw new ArgumentNullException("attribute"); | 422 | throw new ArgumentNullException("attribute"); |
433 | } | 423 | } |
434 | 424 | ||
435 | EmptyRule emptyRule = canBeEmpty ? EmptyRule.CanBeEmpty : EmptyRule.CanBeWhitespaceOnly; | 425 | var emptyRule = canBeEmpty ? EmptyRule.CanBeEmpty : EmptyRule.CanBeWhitespaceOnly; |
436 | string value = this.GetAttributeValue(sourceLineNumbers, attribute, emptyRule); | 426 | var value = this.GetAttributeValue(sourceLineNumbers, attribute, emptyRule); |
437 | 427 | ||
438 | if (String.IsNullOrEmpty(value) && canBeEmpty) | 428 | if (String.IsNullOrEmpty(value) && canBeEmpty) |
439 | { | 429 | { |
@@ -516,15 +506,15 @@ namespace WixToolset.Core.ExtensibilityServices | |||
516 | public string[] GetAttributeInlineDirectorySyntax(SourceLineNumber sourceLineNumbers, XAttribute attribute, bool resultUsedToCreateReference = false) | 506 | public string[] GetAttributeInlineDirectorySyntax(SourceLineNumber sourceLineNumbers, XAttribute attribute, bool resultUsedToCreateReference = false) |
517 | { | 507 | { |
518 | string[] result = null; | 508 | string[] result = null; |
519 | string value = this.GetAttributeValue(sourceLineNumbers, attribute); | 509 | var value = this.GetAttributeValue(sourceLineNumbers, attribute); |
520 | 510 | ||
521 | if (!String.IsNullOrEmpty(value)) | 511 | if (!String.IsNullOrEmpty(value)) |
522 | { | 512 | { |
523 | int pathStartsAt = 0; | 513 | var pathStartsAt = 0; |
524 | result = value.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries); | 514 | result = value.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries); |
525 | if (result[0].EndsWith(":", StringComparison.Ordinal)) | 515 | if (result[0].EndsWith(":", StringComparison.Ordinal)) |
526 | { | 516 | { |
527 | string id = result[0].TrimEnd(':'); | 517 | var id = result[0].TrimEnd(':'); |
528 | if (1 == result.Length) | 518 | if (1 == result.Length) |
529 | { | 519 | { |
530 | this.Messaging.Write(ErrorMessages.InlineDirectorySyntaxRequiresPath(sourceLineNumbers, attribute.Parent.Name.LocalName, attribute.Name.LocalName, value, id)); | 520 | this.Messaging.Write(ErrorMessages.InlineDirectorySyntaxRequiresPath(sourceLineNumbers, attribute.Parent.Name.LocalName, attribute.Name.LocalName, value, id)); |
@@ -558,7 +548,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
558 | } | 548 | } |
559 | 549 | ||
560 | // Check each part of the relative path to ensure that it is a valid directory name. | 550 | // Check each part of the relative path to ensure that it is a valid directory name. |
561 | for (int i = pathStartsAt; i < result.Length; ++i) | 551 | for (var i = pathStartsAt; i < result.Length; ++i) |
562 | { | 552 | { |
563 | if (!this.IsValidLongFilename(result[i], false, false)) | 553 | if (!this.IsValidLongFilename(result[i], false, false)) |
564 | { | 554 | { |
@@ -588,7 +578,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
588 | throw new ArgumentNullException("attribute"); | 578 | throw new ArgumentNullException("attribute"); |
589 | } | 579 | } |
590 | 580 | ||
591 | string value = this.GetAttributeValue(sourceLineNumbers, attribute); | 581 | var value = this.GetAttributeValue(sourceLineNumbers, attribute); |
592 | 582 | ||
593 | if (0 < value.Length) | 583 | if (0 < value.Length) |
594 | { | 584 | { |
@@ -605,7 +595,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
605 | } | 595 | } |
606 | else if (allowRelative) | 596 | else if (allowRelative) |
607 | { | 597 | { |
608 | string normalizedPath = value.Replace('\\', '/'); | 598 | var normalizedPath = value.Replace('\\', '/'); |
609 | if (normalizedPath.StartsWith("../", StringComparison.Ordinal) || normalizedPath.Contains("/../")) | 599 | if (normalizedPath.StartsWith("../", StringComparison.Ordinal) || normalizedPath.Contains("/../")) |
610 | { | 600 | { |
611 | this.Messaging.Write(ErrorMessages.PayloadMustBeRelativeToCache(sourceLineNumbers, attribute.Parent.Name.LocalName, attribute.Name.LocalName, value)); | 601 | this.Messaging.Write(ErrorMessages.PayloadMustBeRelativeToCache(sourceLineNumbers, attribute.Parent.Name.LocalName, attribute.Name.LocalName, value)); |
@@ -624,13 +614,13 @@ namespace WixToolset.Core.ExtensibilityServices | |||
624 | { | 614 | { |
625 | Debug.Assert(minimum > CompilerConstants.LongNotSet && minimum > CompilerConstants.IllegalLong, "The legal values for this attribute collide with at least one sentinel used during parsing."); | 615 | Debug.Assert(minimum > CompilerConstants.LongNotSet && minimum > CompilerConstants.IllegalLong, "The legal values for this attribute collide with at least one sentinel used during parsing."); |
626 | 616 | ||
627 | string value = this.GetAttributeValue(sourceLineNumbers, attribute); | 617 | var value = this.GetAttributeValue(sourceLineNumbers, attribute); |
628 | 618 | ||
629 | if (0 < value.Length) | 619 | if (0 < value.Length) |
630 | { | 620 | { |
631 | try | 621 | try |
632 | { | 622 | { |
633 | long longValue = Convert.ToInt64(value, CultureInfo.InvariantCulture.NumberFormat); | 623 | var longValue = Convert.ToInt64(value, CultureInfo.InvariantCulture.NumberFormat); |
634 | 624 | ||
635 | if (CompilerConstants.LongNotSet == longValue || CompilerConstants.IllegalLong == longValue) | 625 | if (CompilerConstants.LongNotSet == longValue || CompilerConstants.IllegalLong == longValue) |
636 | { | 626 | { |
@@ -664,7 +654,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
664 | 654 | ||
665 | public RegistryRootType? GetAttributeRegistryRootValue(SourceLineNumber sourceLineNumbers, XAttribute attribute, bool allowHkmu) | 655 | public RegistryRootType? GetAttributeRegistryRootValue(SourceLineNumber sourceLineNumbers, XAttribute attribute, bool allowHkmu) |
666 | { | 656 | { |
667 | string value = this.GetAttributeValue(sourceLineNumbers, attribute); | 657 | var value = this.GetAttributeValue(sourceLineNumbers, attribute); |
668 | if (String.IsNullOrEmpty(value)) | 658 | if (String.IsNullOrEmpty(value)) |
669 | { | 659 | { |
670 | return null; | 660 | return null; |
@@ -814,8 +804,8 @@ namespace WixToolset.Core.ExtensibilityServices | |||
814 | } | 804 | } |
815 | 805 | ||
816 | // Check for a non-period character (all periods is not legal) | 806 | // Check for a non-period character (all periods is not legal) |
817 | bool nonPeriodFound = false; | 807 | var nonPeriodFound = false; |
818 | foreach (char character in filename) | 808 | foreach (var character in filename) |
819 | { | 809 | { |
820 | if ('.' != character) | 810 | if ('.' != character) |
821 | { | 811 | { |
@@ -867,7 +857,6 @@ namespace WixToolset.Core.ExtensibilityServices | |||
867 | { | 857 | { |
868 | if (ParseHelper.TryFindExtension(extensions, element.Name.Namespace, out var extension)) | 858 | if (ParseHelper.TryFindExtension(extensions, element.Name.Namespace, out var extension)) |
869 | { | 859 | { |
870 | SourceLineNumber sourceLineNumbers = Preprocessor.GetSourceLineNumbers(parentElement); | ||
871 | extension.ParseElement(intermediate, section, parentElement, element, context); | 860 | extension.ParseElement(intermediate, section, parentElement, element, context); |
872 | } | 861 | } |
873 | else | 862 | else |
@@ -896,7 +885,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
896 | 885 | ||
897 | public void ParseForExtensionElements(IEnumerable<ICompilerExtension> extensions, Intermediate intermediate, IntermediateSection section, XElement element) | 886 | public void ParseForExtensionElements(IEnumerable<ICompilerExtension> extensions, Intermediate intermediate, IntermediateSection section, XElement element) |
898 | { | 887 | { |
899 | foreach (XElement child in element.Elements()) | 888 | foreach (var child in element.Elements()) |
900 | { | 889 | { |
901 | if (element.Name.Namespace == child.Name.Namespace) | 890 | if (element.Name.Namespace == child.Name.Namespace) |
902 | { | 891 | { |
@@ -913,7 +902,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
913 | { | 902 | { |
914 | var actionId = new Identifier(access, sequence, actionName); | 903 | var actionId = new Identifier(access, sequence, actionName); |
915 | 904 | ||
916 | var actionTuple = new WixActionTuple(sourceLineNumbers, actionId) | 905 | var actionTuple = section.AddTuple(new WixActionTuple(sourceLineNumbers, actionId) |
917 | { | 906 | { |
918 | SequenceTable = sequence, | 907 | SequenceTable = sequence, |
919 | Action = actionName, | 908 | Action = actionName, |
@@ -921,19 +910,17 @@ namespace WixToolset.Core.ExtensibilityServices | |||
921 | Before = beforeAction, | 910 | Before = beforeAction, |
922 | After = afterAction, | 911 | After = afterAction, |
923 | Overridable = overridable, | 912 | Overridable = overridable, |
924 | }; | 913 | }); |
925 | |||
926 | section.Tuples.Add(actionTuple); | ||
927 | 914 | ||
928 | if (null != beforeAction) | 915 | if (null != beforeAction) |
929 | { | 916 | { |
930 | if (WindowsInstallerStandard.IsStandardAction(beforeAction)) | 917 | if (WindowsInstallerStandard.IsStandardAction(beforeAction)) |
931 | { | 918 | { |
932 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.WixAction), sequence.ToString(), beforeAction); | 919 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixAction, sequence.ToString(), beforeAction); |
933 | } | 920 | } |
934 | else | 921 | else |
935 | { | 922 | { |
936 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.CustomAction), beforeAction); | 923 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, beforeAction); |
937 | } | 924 | } |
938 | } | 925 | } |
939 | 926 | ||
@@ -941,11 +928,11 @@ namespace WixToolset.Core.ExtensibilityServices | |||
941 | { | 928 | { |
942 | if (WindowsInstallerStandard.IsStandardAction(afterAction)) | 929 | if (WindowsInstallerStandard.IsStandardAction(afterAction)) |
943 | { | 930 | { |
944 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.WixAction), sequence.ToString(), afterAction); | 931 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.WixAction, sequence.ToString(), afterAction); |
945 | } | 932 | } |
946 | else | 933 | else |
947 | { | 934 | { |
948 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.CustomAction), afterAction); | 935 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, afterAction); |
949 | } | 936 | } |
950 | } | 937 | } |
951 | 938 | ||
@@ -981,7 +968,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
981 | break; | 968 | break; |
982 | } | 969 | } |
983 | 970 | ||
984 | this.CreateSimpleReference(section, sourceLineNumbers, nameof(TupleDefinitionType.CustomAction), name + suffix); | 971 | this.CreateSimpleReference(section, sourceLineNumbers, TupleDefinitions.CustomAction, name + suffix); |
985 | } | 972 | } |
986 | } | 973 | } |
987 | 974 | ||
diff --git a/src/WixToolset.Core/Link/WixGroupingOrdering.cs b/src/WixToolset.Core/Link/WixGroupingOrdering.cs index 563cd565..7e0030ca 100644 --- a/src/WixToolset.Core/Link/WixGroupingOrdering.cs +++ b/src/WixToolset.Core/Link/WixGroupingOrdering.cs | |||
@@ -171,15 +171,15 @@ namespace WixToolset.Core.Link | |||
171 | // does WiX (although they do, currently). We probably want to "upgrade" this to a new | 171 | // does WiX (although they do, currently). We probably want to "upgrade" this to a new |
172 | // table that includes a sequence number, and then change the code that uses ordered | 172 | // table that includes a sequence number, and then change the code that uses ordered |
173 | // groups to read from that table instead. | 173 | // groups to read from that table instead. |
174 | foreach (Item item in orderedItems) | 174 | foreach (var item in orderedItems) |
175 | { | 175 | { |
176 | var row = new WixGroupTuple(item.Row.SourceLineNumbers); | 176 | this.EntrySection.AddTuple(new WixGroupTuple(item.Row.SourceLineNumbers) |
177 | row.ParentId = parentId; | 177 | { |
178 | row.ParentType = (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), parentType); | 178 | ParentId = parentId, |
179 | row.ChildId = item.Id; | 179 | ParentType = (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), parentType), |
180 | row.ChildType = (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), item.Type); | 180 | ChildId = item.Id, |
181 | 181 | ChildType = (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), item.Type), | |
182 | this.EntrySection.Tuples.Add(row); | 182 | }); |
183 | } | 183 | } |
184 | } | 184 | } |
185 | 185 | ||
diff --git a/src/WixToolset.Core/Linker.cs b/src/WixToolset.Core/Linker.cs index bc4f5774..4c4c6063 100644 --- a/src/WixToolset.Core/Linker.cs +++ b/src/WixToolset.Core/Linker.cs | |||
@@ -211,9 +211,6 @@ namespace WixToolset.Core | |||
211 | // resolve the feature to feature connects | 211 | // resolve the feature to feature connects |
212 | this.ResolveFeatureToFeatureConnects(featuresToFeatures, find.Symbols); | 212 | this.ResolveFeatureToFeatureConnects(featuresToFeatures, find.Symbols); |
213 | 213 | ||
214 | // start generating OutputTables and OutputRows for all the sections in the output | ||
215 | var ensureTableRows = new List<IntermediateTuple>(); | ||
216 | |||
217 | // Create the section to hold the linked content. | 214 | // Create the section to hold the linked content. |
218 | var resolvedSection = new IntermediateSection(find.EntrySection.Id, find.EntrySection.Type, find.EntrySection.Codepage); | 215 | var resolvedSection = new IntermediateSection(find.EntrySection.Id, find.EntrySection.Type, find.EntrySection.Codepage); |
219 | 216 | ||
@@ -239,7 +236,7 @@ namespace WixToolset.Core | |||
239 | case TupleDefinitionType.Class: | 236 | case TupleDefinitionType.Class: |
240 | if (SectionType.Product == resolvedSection.Type) | 237 | if (SectionType.Product == resolvedSection.Type) |
241 | { | 238 | { |
242 | this.ResolveFeatures(tuple, 2, 11, componentsToFeatures, multipleFeatureComponents); | 239 | this.ResolveFeatures(tuple, (int)ClassTupleFields.ComponentRef, (int)ClassTupleFields.FeatureRef, componentsToFeatures, multipleFeatureComponents); |
243 | } | 240 | } |
244 | break; | 241 | break; |
245 | 242 | ||
@@ -294,7 +291,7 @@ namespace WixToolset.Core | |||
294 | case TupleDefinitionType.Extension: | 291 | case TupleDefinitionType.Extension: |
295 | if (SectionType.Product == resolvedSection.Type) | 292 | if (SectionType.Product == resolvedSection.Type) |
296 | { | 293 | { |
297 | this.ResolveFeatures(tuple, 1, 4, componentsToFeatures, multipleFeatureComponents); | 294 | this.ResolveFeatures(tuple, (int)ExtensionTupleFields.ComponentRef, (int)ExtensionTupleFields.FeatureRef, componentsToFeatures, multipleFeatureComponents); |
298 | } | 295 | } |
299 | break; | 296 | break; |
300 | 297 | ||
@@ -311,35 +308,31 @@ namespace WixToolset.Core | |||
311 | case TupleDefinitionType.Assembly: | 308 | case TupleDefinitionType.Assembly: |
312 | if (SectionType.Product == resolvedSection.Type) | 309 | if (SectionType.Product == resolvedSection.Type) |
313 | { | 310 | { |
314 | this.ResolveFeatures(tuple, 0, 1, componentsToFeatures, multipleFeatureComponents); | 311 | this.ResolveFeatures(tuple, (int)AssemblyTupleFields.ComponentRef, (int)AssemblyTupleFields.FeatureRef, componentsToFeatures, multipleFeatureComponents); |
315 | } | 312 | } |
316 | break; | 313 | break; |
317 | 314 | ||
318 | case TupleDefinitionType.PublishComponent: | 315 | case TupleDefinitionType.PublishComponent: |
319 | if (SectionType.Product == resolvedSection.Type) | 316 | if (SectionType.Product == resolvedSection.Type) |
320 | { | 317 | { |
321 | this.ResolveFeatures(tuple, 2, 4, componentsToFeatures, multipleFeatureComponents); | 318 | this.ResolveFeatures(tuple, (int)PublishComponentTupleFields.ComponentRef, (int)PublishComponentTupleFields.FeatureRef, componentsToFeatures, multipleFeatureComponents); |
322 | } | 319 | } |
323 | break; | 320 | break; |
324 | 321 | ||
325 | case TupleDefinitionType.Shortcut: | 322 | case TupleDefinitionType.Shortcut: |
326 | if (SectionType.Product == resolvedSection.Type) | 323 | if (SectionType.Product == resolvedSection.Type) |
327 | { | 324 | { |
328 | this.ResolveFeatures(tuple, 3, 4, componentsToFeatures, multipleFeatureComponents); | 325 | this.ResolveFeatures(tuple, (int)ShortcutTupleFields.ComponentRef, (int)ShortcutTupleFields.Target, componentsToFeatures, multipleFeatureComponents); |
329 | } | 326 | } |
330 | break; | 327 | break; |
331 | 328 | ||
332 | case TupleDefinitionType.TypeLib: | 329 | case TupleDefinitionType.TypeLib: |
333 | if (SectionType.Product == resolvedSection.Type) | 330 | if (SectionType.Product == resolvedSection.Type) |
334 | { | 331 | { |
335 | this.ResolveFeatures(tuple, 2, 6, componentsToFeatures, multipleFeatureComponents); | 332 | this.ResolveFeatures(tuple, (int)TypeLibTupleFields.ComponentRef, (int)TypeLibTupleFields.FeatureRef, componentsToFeatures, multipleFeatureComponents); |
336 | } | 333 | } |
337 | break; | 334 | break; |
338 | 335 | ||
339 | case TupleDefinitionType.WixEnsureTable: | ||
340 | ensureTableRows.Add(tuple); | ||
341 | break; | ||
342 | |||
343 | #if MOVE_TO_BACKEND | 336 | #if MOVE_TO_BACKEND |
344 | case "WixFile": | 337 | case "WixFile": |
345 | foreach (Row row in table.Rows) | 338 | foreach (Row row in table.Rows) |
@@ -404,7 +397,7 @@ namespace WixToolset.Core | |||
404 | 397 | ||
405 | if (copyTuple) | 398 | if (copyTuple) |
406 | { | 399 | { |
407 | resolvedSection.Tuples.Add(tuple); | 400 | resolvedSection.AddTuple(tuple); |
408 | } | 401 | } |
409 | } | 402 | } |
410 | } | 403 | } |
@@ -414,13 +407,11 @@ namespace WixToolset.Core | |||
414 | { | 407 | { |
415 | foreach (var feature in connectToFeature.ConnectFeatures) | 408 | foreach (var feature in connectToFeature.ConnectFeatures) |
416 | { | 409 | { |
417 | var row = new WixFeatureModulesTuple | 410 | resolvedSection.AddTuple(new WixFeatureModulesTuple |
418 | { | 411 | { |
419 | FeatureRef = feature, | 412 | FeatureRef = feature, |
420 | WixMergeRef = connectToFeature.ChildId | 413 | WixMergeRef = connectToFeature.ChildId |
421 | }; | 414 | }); |
422 | |||
423 | resolvedSection.Tuples.Add(row); | ||
424 | } | 415 | } |
425 | } | 416 | } |
426 | 417 | ||
@@ -554,9 +545,9 @@ namespace WixToolset.Core | |||
554 | #endif | 545 | #endif |
555 | 546 | ||
556 | // copy the wix variable rows to the output after all overriding has been accounted for. | 547 | // copy the wix variable rows to the output after all overriding has been accounted for. |
557 | foreach (var row in wixVariables.Values) | 548 | foreach (var tuple in wixVariables.Values) |
558 | { | 549 | { |
559 | resolvedSection.Tuples.Add(row); | 550 | resolvedSection.AddTuple(tuple); |
560 | } | 551 | } |
561 | 552 | ||
562 | // Bundles have groups of data that must be flattened in a way different from other types. | 553 | // Bundles have groups of data that must be flattened in a way different from other types. |
@@ -774,9 +765,8 @@ namespace WixToolset.Core | |||
774 | 765 | ||
775 | foreach (var section in sections) | 766 | foreach (var section in sections) |
776 | { | 767 | { |
777 | var featureComponents = new List<FeatureComponentsTuple>(); | 768 | // Need ToList since we might want to add tuples while processing. |
778 | 769 | foreach (var wixComplexReferenceRow in section.Tuples.OfType<WixComplexReferenceTuple>().ToList()) | |
779 | foreach (var wixComplexReferenceRow in section.Tuples.OfType<WixComplexReferenceTuple>()) | ||
780 | { | 770 | { |
781 | ConnectToFeature connection; | 771 | ConnectToFeature connection; |
782 | switch (wixComplexReferenceRow.ParentType) | 772 | switch (wixComplexReferenceRow.ParentType) |
@@ -810,11 +800,11 @@ namespace WixToolset.Core | |||
810 | } | 800 | } |
811 | 801 | ||
812 | // add a row to the FeatureComponents table | 802 | // add a row to the FeatureComponents table |
813 | var featureComponent = new FeatureComponentsTuple(); | 803 | section.AddTuple(new FeatureComponentsTuple |
814 | featureComponent.FeatureRef = wixComplexReferenceRow.Parent; | 804 | { |
815 | featureComponent.ComponentRef = wixComplexReferenceRow.Child; | 805 | FeatureRef = wixComplexReferenceRow.Parent, |
816 | 806 | ComponentRef = wixComplexReferenceRow.Child, | |
817 | featureComponents.Add(featureComponent); | 807 | }); |
818 | 808 | ||
819 | // index the component for finding orphaned records | 809 | // index the component for finding orphaned records |
820 | var symbolName = String.Concat("Component:", wixComplexReferenceRow.Child); | 810 | var symbolName = String.Concat("Component:", wixComplexReferenceRow.Child); |
@@ -878,10 +868,12 @@ namespace WixToolset.Core | |||
878 | componentsToModules.Add(wixComplexReferenceRow.Child, wixComplexReferenceRow); // should always be new | 868 | componentsToModules.Add(wixComplexReferenceRow.Child, wixComplexReferenceRow); // should always be new |
879 | 869 | ||
880 | // add a row to the ModuleComponents table | 870 | // add a row to the ModuleComponents table |
881 | var moduleComponent = new ModuleComponentsTuple(); | 871 | section.AddTuple(new ModuleComponentsTuple |
882 | moduleComponent.Component = wixComplexReferenceRow.Child; | 872 | { |
883 | moduleComponent.ModuleID = wixComplexReferenceRow.Parent; | 873 | Component = wixComplexReferenceRow.Child, |
884 | moduleComponent.Language = Convert.ToInt32(wixComplexReferenceRow.ParentLanguage); | 874 | ModuleID = wixComplexReferenceRow.Parent, |
875 | Language = Convert.ToInt32(wixComplexReferenceRow.ParentLanguage), | ||
876 | }); | ||
885 | } | 877 | } |
886 | 878 | ||
887 | // index the component for finding orphaned records | 879 | // index the component for finding orphaned records |
@@ -931,11 +923,6 @@ namespace WixToolset.Core | |||
931 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, "Unexpected complex reference child type: {0}", Enum.GetName(typeof(ComplexReferenceParentType), wixComplexReferenceRow.ParentType))); | 923 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, "Unexpected complex reference child type: {0}", Enum.GetName(typeof(ComplexReferenceParentType), wixComplexReferenceRow.ParentType))); |
932 | } | 924 | } |
933 | } | 925 | } |
934 | |||
935 | foreach (var featureComponent in featureComponents) | ||
936 | { | ||
937 | section.Tuples.Add(featureComponent); | ||
938 | } | ||
939 | } | 926 | } |
940 | } | 927 | } |
941 | 928 | ||
@@ -1048,7 +1035,7 @@ namespace WixToolset.Core | |||
1048 | (ComplexReferenceParentType.ComponentGroup != wixComplexReferenceRow.ParentType) && | 1035 | (ComplexReferenceParentType.ComponentGroup != wixComplexReferenceRow.ParentType) && |
1049 | (ComplexReferenceParentType.PatchFamilyGroup != wixComplexReferenceRow.ParentType)) | 1036 | (ComplexReferenceParentType.PatchFamilyGroup != wixComplexReferenceRow.ParentType)) |
1050 | { | 1037 | { |
1051 | section.Tuples.Add(wixComplexReferenceRow); | 1038 | section.AddTuple(wixComplexReferenceRow); |
1052 | } | 1039 | } |
1053 | } | 1040 | } |
1054 | } | 1041 | } |
@@ -1322,15 +1309,15 @@ namespace WixToolset.Core | |||
1322 | /// <summary> | 1309 | /// <summary> |
1323 | /// Resolve features for columns that have null guid placeholders. | 1310 | /// Resolve features for columns that have null guid placeholders. |
1324 | /// </summary> | 1311 | /// </summary> |
1325 | /// <param name="rows">Rows to resolve.</param> | 1312 | /// <param name="tuple">Tuple to resolve.</param> |
1326 | /// <param name="connectionColumn">Number of the column containing the connection identifier.</param> | 1313 | /// <param name="connectionColumn">Number of the column containing the connection identifier.</param> |
1327 | /// <param name="featureColumn">Number of the column containing the feature.</param> | 1314 | /// <param name="featureColumn">Number of the column containing the feature.</param> |
1328 | /// <param name="connectToFeatures">Connect to feature complex references.</param> | 1315 | /// <param name="connectToFeatures">Connect to feature complex references.</param> |
1329 | /// <param name="multipleFeatureComponents">Hashtable of known components under multiple features.</param> | 1316 | /// <param name="multipleFeatureComponents">Hashtable of known components under multiple features.</param> |
1330 | private void ResolveFeatures(IntermediateTuple row, int connectionColumn, int featureColumn, ConnectToFeatureCollection connectToFeatures, Hashtable multipleFeatureComponents) | 1317 | private void ResolveFeatures(IntermediateTuple tuple, int connectionColumn, int featureColumn, ConnectToFeatureCollection connectToFeatures, Hashtable multipleFeatureComponents) |
1331 | { | 1318 | { |
1332 | var connectionId = row.AsString(connectionColumn); | 1319 | var connectionId = tuple.AsString(connectionColumn); |
1333 | var featureId = row.AsString(featureColumn); | 1320 | var featureId = tuple.AsString(featureColumn); |
1334 | 1321 | ||
1335 | if (EmptyGuid == featureId) | 1322 | if (EmptyGuid == featureId) |
1336 | { | 1323 | { |
@@ -1338,14 +1325,14 @@ namespace WixToolset.Core | |||
1338 | 1325 | ||
1339 | if (null == connection) | 1326 | if (null == connection) |
1340 | { | 1327 | { |
1341 | // display an error for the component or merge module as approrpriate | 1328 | // display an error for the component or merge module as appropriate |
1342 | if (null != multipleFeatureComponents) | 1329 | if (null != multipleFeatureComponents) |
1343 | { | 1330 | { |
1344 | this.Messaging.Write(ErrorMessages.ComponentExpectedFeature(row.SourceLineNumbers, connectionId, row.Definition.Name, row.Id.Id)); | 1331 | this.Messaging.Write(ErrorMessages.ComponentExpectedFeature(tuple.SourceLineNumbers, connectionId, tuple.Definition.Name, tuple.Id.Id)); |
1345 | } | 1332 | } |
1346 | else | 1333 | else |
1347 | { | 1334 | { |
1348 | this.Messaging.Write(ErrorMessages.MergeModuleExpectedFeature(row.SourceLineNumbers, connectionId)); | 1335 | this.Messaging.Write(ErrorMessages.MergeModuleExpectedFeature(tuple.SourceLineNumbers, connectionId)); |
1349 | } | 1336 | } |
1350 | } | 1337 | } |
1351 | else | 1338 | else |
@@ -1373,7 +1360,7 @@ namespace WixToolset.Core | |||
1373 | } | 1360 | } |
1374 | 1361 | ||
1375 | // set the feature | 1362 | // set the feature |
1376 | row.Set(featureColumn, connection.PrimaryFeature); | 1363 | tuple.Set(featureColumn, connection.PrimaryFeature); |
1377 | } | 1364 | } |
1378 | } | 1365 | } |
1379 | } | 1366 | } |
diff --git a/src/test/Example.Extension/ExampleCompilerExtension.cs b/src/test/Example.Extension/ExampleCompilerExtension.cs index 9f0abd4c..0005b1d5 100644 --- a/src/test/Example.Extension/ExampleCompilerExtension.cs +++ b/src/test/Example.Extension/ExampleCompilerExtension.cs | |||
@@ -157,10 +157,10 @@ namespace Example.Extension | |||
157 | 157 | ||
158 | if (!this.Messaging.EncounteredError) | 158 | if (!this.Messaging.EncounteredError) |
159 | { | 159 | { |
160 | 160 | var tuple = section.AddTuple(new ExampleSearchTuple(sourceLineNumbers, id) | |
161 | var tuple = new ExampleSearchTuple(sourceLineNumbers, id); | 161 | { |
162 | section.Tuples.Add(tuple); | 162 | SearchFor = searchFor, |
163 | tuple.SearchFor = searchFor; | 163 | }); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | 166 | ||
@@ -176,7 +176,7 @@ namespace Example.Extension | |||
176 | { | 176 | { |
177 | case "Id": | 177 | case "Id": |
178 | var refId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); | 178 | var refId = this.ParseHelper.GetAttributeIdentifierValue(sourceLineNumbers, attrib); |
179 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, "ExampleSearch", refId); | 179 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, ExampleTupleDefinitions.ExampleSearch, refId); |
180 | break; | 180 | break; |
181 | default: | 181 | default: |
182 | this.ParseHelper.UnexpectedAttribute(element, attrib); | 182 | this.ParseHelper.UnexpectedAttribute(element, attrib); |