aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Linker.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Core/Linker.cs37
1 files changed, 5 insertions, 32 deletions
diff --git a/src/WixToolset.Core/Linker.cs b/src/WixToolset.Core/Linker.cs
index bf7130db..47671f26 100644
--- a/src/WixToolset.Core/Linker.cs
+++ b/src/WixToolset.Core/Linker.cs
@@ -312,7 +312,11 @@ namespace WixToolset.Core
312 } 312 }
313 313
314 // Bundles have groups of data that must be flattened in a way different from other types. 314 // Bundles have groups of data that must be flattened in a way different from other types.
315 this.FlattenBundleTables(resolvedSection); 315 if (resolvedSection.Type == SectionType.Bundle)
316 {
317 var command = new FlattenAndProcessBundleTablesCommand(resolvedSection, this.Messaging);
318 command.Execute();
319 }
316 320
317 if (this.Messaging.EncounteredError) 321 if (this.Messaging.EncounteredError)
318 { 322 {
@@ -854,37 +858,6 @@ namespace WixToolset.Core
854 */ 858 */
855 859
856 /// <summary> 860 /// <summary>
857 /// Flattens the tables used in a Bundle.
858 /// </summary>
859 /// <param name="entrySection">Output containing the tables to process.</param>
860 private void FlattenBundleTables(IntermediateSection entrySection)
861 {
862 if (SectionType.Bundle != entrySection.Type)
863 {
864 return;
865 }
866
867 // We need to flatten the nested PayloadGroups and PackageGroups under
868 // UX, Chain, and any Containers. When we're done, the WixGroups table
869 // will hold Payloads under UX, ChainPackages (references?) under Chain,
870 // and ChainPackages/Payloads under the attached and any detatched
871 // Containers.
872 var groups = new WixGroupingOrdering(entrySection, this.Messaging);
873
874 // Create UX payloads and Package payloads
875 groups.UseTypes(new[] { ComplexReferenceParentType.Container, ComplexReferenceParentType.Layout, ComplexReferenceParentType.PackageGroup, ComplexReferenceParentType.PayloadGroup, ComplexReferenceParentType.Package }, new[] { ComplexReferenceChildType.PackageGroup, ComplexReferenceChildType.Package, ComplexReferenceChildType.PackagePayload, ComplexReferenceChildType.PayloadGroup, ComplexReferenceChildType.Payload });
876 groups.FlattenAndRewriteGroups(ComplexReferenceParentType.Package, false);
877 groups.FlattenAndRewriteGroups(ComplexReferenceParentType.Container, false);
878 groups.FlattenAndRewriteGroups(ComplexReferenceParentType.Layout, false);
879
880 // Create Chain packages...
881 groups.UseTypes(new[] { ComplexReferenceParentType.PackageGroup }, new[] { ComplexReferenceChildType.Package, ComplexReferenceChildType.PackageGroup });
882 groups.FlattenAndRewriteRows(ComplexReferenceChildType.PackageGroup, "WixChain", false);
883
884 groups.RemoveUsedGroupRows();
885 }
886
887 /// <summary>
888 /// Resolves the features connected to other features in the active output. 861 /// Resolves the features connected to other features in the active output.
889 /// </summary> 862 /// </summary>
890 /// <param name="featuresToFeatures">Feature to feature complex references.</param> 863 /// <param name="featuresToFeatures">Feature to feature complex references.</param>