diff options
Diffstat (limited to 'src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs')
-rw-r--r-- | src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs index 9f98483f..2cb5ed64 100644 --- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs +++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs | |||
@@ -117,10 +117,10 @@ namespace WixToolset.Core.Burn | |||
117 | // If there are any fields to resolve later, create the cache to populate during bind. | 117 | // If there are any fields to resolve later, create the cache to populate during bind. |
118 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; | 118 | var variableCache = this.DelayedFields.Any() ? new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) : null; |
119 | 119 | ||
120 | // TODO: Although the WixSearch tables are defined in the Util extension, | 120 | var orderSearchesCommand = new OrderSearchesCommand(this.Messaging, section); |
121 | // the Bundle Binder has to know all about them. We hope to revisit all | 121 | orderSearchesCommand.Execute(); |
122 | // of this in the 4.0 timeframe. | 122 | var orderedSearches = orderSearchesCommand.OrderedSearchFacades; |
123 | var orderedSearches = this.OrderSearches(section); | 123 | var extensionSearchTuplesById = orderSearchesCommand.ExtensionSearchTuplesByExtensionId; |
124 | 124 | ||
125 | // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules). | 125 | // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules). |
126 | { | 126 | { |
@@ -387,6 +387,17 @@ namespace WixToolset.Core.Burn | |||
387 | 387 | ||
388 | var baManifestPayload = command.BootstrapperApplicationManifestPayloadRow; | 388 | var baManifestPayload = command.BootstrapperApplicationManifestPayloadRow; |
389 | payloadTuples.Add(baManifestPayload.Id.Id, baManifestPayload); | 389 | payloadTuples.Add(baManifestPayload.Id.Id, baManifestPayload); |
390 | ++uxPayloadIndex; | ||
391 | } | ||
392 | |||
393 | // Generate the bundle extension manifest... | ||
394 | { | ||
395 | var command = new CreateBundleExtensionManifestCommand(section, bundleTuple, extensionSearchTuplesById, uxPayloadIndex, this.IntermediateFolder); | ||
396 | command.Execute(); | ||
397 | |||
398 | var bextManifestPayload = command.BundleExtensionManifestPayloadRow; | ||
399 | payloadTuples.Add(bextManifestPayload.Id.Id, bextManifestPayload); | ||
400 | ++uxPayloadIndex; | ||
390 | } | 401 | } |
391 | 402 | ||
392 | #if TODO | 403 | #if TODO |
@@ -464,28 +475,6 @@ namespace WixToolset.Core.Burn | |||
464 | trackedFiles.Add(trackIntermediate); | 475 | trackedFiles.Add(trackIntermediate); |
465 | } | 476 | } |
466 | 477 | ||
467 | private IEnumerable<SearchFacade> OrderSearches(IntermediateSection section) | ||
468 | { | ||
469 | var searchesById = section.Tuples | ||
470 | .Where(t => t.Definition.Type == TupleDefinitionType.WixComponentSearch || | ||
471 | t.Definition.Type == TupleDefinitionType.WixFileSearch || | ||
472 | t.Definition.Type == TupleDefinitionType.WixProductSearch || | ||
473 | t.Definition.Type == TupleDefinitionType.WixRegistrySearch) | ||
474 | .ToDictionary(t => t.Id.Id); | ||
475 | |||
476 | var orderedSearches = new List<SearchFacade>(searchesById.Keys.Count); | ||
477 | |||
478 | foreach (var searchTuple in section.Tuples.OfType<WixSearchTuple>()) | ||
479 | { | ||
480 | if (searchesById.TryGetValue(searchTuple.Id.Id, out var specificSearchTuple)) | ||
481 | { | ||
482 | orderedSearches.Add(new SearchFacade(searchTuple, specificSearchTuple)); | ||
483 | } | ||
484 | } | ||
485 | |||
486 | return orderedSearches; | ||
487 | } | ||
488 | |||
489 | /// <summary> | 478 | /// <summary> |
490 | /// Populates the variable cache with specific package properties. | 479 | /// Populates the variable cache with specific package properties. |
491 | /// </summary> | 480 | /// </summary> |