aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs')
-rw-r--r--src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs182
1 files changed, 91 insertions, 91 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
index 943625ec..a64bdcc1 100644
--- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
+++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
@@ -13,7 +13,7 @@ namespace WixToolset.Core.Burn
13 using WixToolset.Core.Burn.Bundles; 13 using WixToolset.Core.Burn.Bundles;
14 using WixToolset.Data; 14 using WixToolset.Data;
15 using WixToolset.Data.Burn; 15 using WixToolset.Data.Burn;
16 using WixToolset.Data.Tuples; 16 using WixToolset.Data.Symbols;
17 using WixToolset.Extensibility; 17 using WixToolset.Extensibility;
18 using WixToolset.Extensibility.Data; 18 using WixToolset.Extensibility.Data;
19 using WixToolset.Extensibility.Services; 19 using WixToolset.Extensibility.Services;
@@ -88,28 +88,28 @@ namespace WixToolset.Core.Burn
88 // We shouldn't really get past the linker phase if there are 88 // We shouldn't really get past the linker phase if there are
89 // no group items... that means that there's no UX, no Chain, 89 // no group items... that means that there's no UX, no Chain,
90 // *and* no Containers! 90 // *and* no Containers!
91 var chainPackageTuples = this.GetRequiredTuples<WixBundlePackageTuple>(); 91 var chainPackageSymbols = this.GetRequiredSymbols<WixBundlePackageSymbol>();
92 92
93 var wixGroupTuples = this.GetRequiredTuples<WixGroupTuple>(); 93 var wixGroupSymbols = this.GetRequiredSymbols<WixGroupSymbol>();
94 94
95 // Ensure there is one and only one row in the WixBundle table. 95 // Ensure there is one and only one row in the WixBundle table.
96 // The compiler and linker behavior should have colluded to get 96 // The compiler and linker behavior should have colluded to get
97 // this behavior. 97 // this behavior.
98 var bundleTuple = this.GetSingleTuple<WixBundleTuple>(); 98 var bundleSymbol = this.GetSingleSymbol<WixBundleSymbol>();
99 99
100 bundleTuple.ProviderKey = bundleTuple.BundleId = Guid.NewGuid().ToString("B").ToUpperInvariant(); 100 bundleSymbol.ProviderKey = bundleSymbol.BundleId = Guid.NewGuid().ToString("B").ToUpperInvariant();
101 101
102 bundleTuple.Attributes |= WixBundleAttributes.PerMachine; // default to per-machine but the first-per user package wil flip the bundle per-user. 102 bundleSymbol.Attributes |= WixBundleAttributes.PerMachine; // default to per-machine but the first-per user package wil flip the bundle per-user.
103 103
104 // Ensure there is one and only one row in the WixBootstrapperApplication table. 104 // Ensure there is one and only one row in the WixBootstrapperApplication table.
105 // The compiler and linker behavior should have colluded to get 105 // The compiler and linker behavior should have colluded to get
106 // this behavior. 106 // this behavior.
107 var bundleApplicationTuple = this.GetSingleTuple<WixBootstrapperApplicationTuple>(); 107 var bundleApplicationSymbol = this.GetSingleSymbol<WixBootstrapperApplicationSymbol>();
108 108
109 // Ensure there is one and only one row in the WixChain table. 109 // Ensure there is one and only one row in the WixChain table.
110 // The compiler and linker behavior should have colluded to get 110 // The compiler and linker behavior should have colluded to get
111 // this behavior. 111 // this behavior.
112 var chainTuple = this.GetSingleTuple<WixChainTuple>(); 112 var chainSymbol = this.GetSingleSymbol<WixChainSymbol>();
113 113
114 if (this.Messaging.EncounteredError) 114 if (this.Messaging.EncounteredError)
115 { 115 {
@@ -122,7 +122,7 @@ namespace WixToolset.Core.Burn
122 var orderSearchesCommand = new OrderSearchesCommand(this.Messaging, section); 122 var orderSearchesCommand = new OrderSearchesCommand(this.Messaging, section);
123 orderSearchesCommand.Execute(); 123 orderSearchesCommand.Execute();
124 var orderedSearches = orderSearchesCommand.OrderedSearchFacades; 124 var orderedSearches = orderSearchesCommand.OrderedSearchFacades;
125 var extensionSearchTuplesById = orderSearchesCommand.ExtensionSearchTuplesByExtensionId; 125 var extensionSearchSymbolsById = orderSearchesCommand.ExtensionSearchSymbolsByExtensionId;
126 126
127 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules). 127 // Extract files that come from binary .wixlibs and WixExtensions (this does not extract files from merge modules).
128 { 128 {
@@ -133,29 +133,29 @@ namespace WixToolset.Core.Burn
133 } 133 }
134 134
135 // Get the explicit payloads. 135 // Get the explicit payloads.
136 var payloadTuples = section.Tuples.OfType<WixBundlePayloadTuple>().ToDictionary(t => t.Id.Id); 136 var payloadSymbols = section.Symbols.OfType<WixBundlePayloadSymbol>().ToDictionary(t => t.Id.Id);
137 137
138 // Update explicitly authored payloads with their parent package and container (as appropriate) 138 // Update explicitly authored payloads with their parent package and container (as appropriate)
139 // to make it easier to gather the payloads later. 139 // to make it easier to gather the payloads later.
140 foreach (var groupTuple in wixGroupTuples) 140 foreach (var groupSymbol in wixGroupSymbols)
141 { 141 {
142 if (ComplexReferenceChildType.Payload == groupTuple.ChildType) 142 if (ComplexReferenceChildType.Payload == groupSymbol.ChildType)
143 { 143 {
144 var payloadTuple = payloadTuples[groupTuple.ChildId]; 144 var payloadSymbol = payloadSymbols[groupSymbol.ChildId];
145 145
146 if (ComplexReferenceParentType.Package == groupTuple.ParentType) 146 if (ComplexReferenceParentType.Package == groupSymbol.ParentType)
147 { 147 {
148 Debug.Assert(String.IsNullOrEmpty(payloadTuple.PackageRef)); 148 Debug.Assert(String.IsNullOrEmpty(payloadSymbol.PackageRef));
149 payloadTuple.PackageRef = groupTuple.ParentId; 149 payloadSymbol.PackageRef = groupSymbol.ParentId;
150 } 150 }
151 else if (ComplexReferenceParentType.Container == groupTuple.ParentType) 151 else if (ComplexReferenceParentType.Container == groupSymbol.ParentType)
152 { 152 {
153 Debug.Assert(String.IsNullOrEmpty(payloadTuple.ContainerRef)); 153 Debug.Assert(String.IsNullOrEmpty(payloadSymbol.ContainerRef));
154 payloadTuple.ContainerRef = groupTuple.ParentId; 154 payloadSymbol.ContainerRef = groupSymbol.ParentId;
155 } 155 }
156 else if (ComplexReferenceParentType.Layout == groupTuple.ParentType) 156 else if (ComplexReferenceParentType.Layout == groupSymbol.ParentType)
157 { 157 {
158 payloadTuple.LayoutOnly = true; 158 payloadSymbol.LayoutOnly = true;
159 } 159 }
160 } 160 }
161 } 161 }
@@ -165,44 +165,44 @@ namespace WixToolset.Core.Burn
165 // Process the explicitly authored payloads. 165 // Process the explicitly authored payloads.
166 ISet<string> processedPayloads; 166 ISet<string> processedPayloads;
167 { 167 {
168 var command = new ProcessPayloadsCommand(this.ServiceProvider, this.BackendHelper, payloadTuples.Values, bundleTuple.DefaultPackagingType, layoutDirectory); 168 var command = new ProcessPayloadsCommand(this.ServiceProvider, this.BackendHelper, payloadSymbols.Values, bundleSymbol.DefaultPackagingType, layoutDirectory);
169 command.Execute(); 169 command.Execute();
170 170
171 fileTransfers.AddRange(command.FileTransfers); 171 fileTransfers.AddRange(command.FileTransfers);
172 trackedFiles.AddRange(command.TrackedFiles); 172 trackedFiles.AddRange(command.TrackedFiles);
173 173
174 processedPayloads = new HashSet<string>(payloadTuples.Keys); 174 processedPayloads = new HashSet<string>(payloadSymbols.Keys);
175 } 175 }
176 176
177 IDictionary<string, PackageFacade> facades; 177 IDictionary<string, PackageFacade> facades;
178 { 178 {
179 var command = new GetPackageFacadesCommand(chainPackageTuples, section); 179 var command = new GetPackageFacadesCommand(chainPackageSymbols, section);
180 command.Execute(); 180 command.Execute();
181 181
182 facades = command.PackageFacades; 182 facades = command.PackageFacades;
183 } 183 }
184 184
185 // Process each package facade. Note this is likely to add payloads and other tuples so 185 // Process each package facade. Note this is likely to add payloads and other symbols so
186 // note that any indexes created above may be out of date now. 186 // note that any indexes created above may be out of date now.
187 foreach (var facade in facades.Values) 187 foreach (var facade in facades.Values)
188 { 188 {
189 switch (facade.PackageTuple.Type) 189 switch (facade.PackageSymbol.Type)
190 { 190 {
191 case WixBundlePackageType.Exe: 191 case WixBundlePackageType.Exe:
192 { 192 {
193 var command = new ProcessExePackageCommand(facade, payloadTuples); 193 var command = new ProcessExePackageCommand(facade, payloadSymbols);
194 command.Execute(); 194 command.Execute();
195 } 195 }
196 break; 196 break;
197 197
198 case WixBundlePackageType.Msi: 198 case WixBundlePackageType.Msi:
199 { 199 {
200 var command = new ProcessMsiPackageCommand(this.ServiceProvider, this.BackendExtensions, section, facade, payloadTuples); 200 var command = new ProcessMsiPackageCommand(this.ServiceProvider, this.BackendExtensions, section, facade, payloadSymbols);
201 command.Execute(); 201 command.Execute();
202 202
203 if (null != variableCache) 203 if (null != variableCache)
204 { 204 {
205 var msiPackage = (WixBundleMsiPackageTuple)facade.SpecificPackageTuple; 205 var msiPackage = (WixBundleMsiPackageSymbol)facade.SpecificPackageSymbol;
206 variableCache.Add(String.Concat("packageLanguage.", facade.PackageId), msiPackage.ProductLanguage.ToString()); 206 variableCache.Add(String.Concat("packageLanguage.", facade.PackageId), msiPackage.ProductLanguage.ToString());
207 207
208 if (null != msiPackage.Manufacturer) 208 if (null != msiPackage.Manufacturer)
@@ -215,14 +215,14 @@ namespace WixToolset.Core.Burn
215 215
216 case WixBundlePackageType.Msp: 216 case WixBundlePackageType.Msp:
217 { 217 {
218 var command = new ProcessMspPackageCommand(this.Messaging, section, facade, payloadTuples); 218 var command = new ProcessMspPackageCommand(this.Messaging, section, facade, payloadSymbols);
219 command.Execute(); 219 command.Execute();
220 } 220 }
221 break; 221 break;
222 222
223 case WixBundlePackageType.Msu: 223 case WixBundlePackageType.Msu:
224 { 224 {
225 var command = new ProcessMsuPackageCommand(facade, payloadTuples); 225 var command = new ProcessMsuPackageCommand(facade, payloadSymbols);
226 command.Execute(); 226 command.Execute();
227 } 227 }
228 break; 228 break;
@@ -230,7 +230,7 @@ namespace WixToolset.Core.Burn
230 230
231 if (null != variableCache) 231 if (null != variableCache)
232 { 232 {
233 BindBundleCommand.PopulatePackageVariableCache(facade.PackageTuple, variableCache); 233 BindBundleCommand.PopulatePackageVariableCache(facade.PackageSymbol, variableCache);
234 } 234 }
235 } 235 }
236 236
@@ -241,13 +241,13 @@ namespace WixToolset.Core.Burn
241 241
242 // Reindex the payloads now that all the payloads (minus the manifest payloads that will be created later) 242 // Reindex the payloads now that all the payloads (minus the manifest payloads that will be created later)
243 // are present. 243 // are present.
244 payloadTuples = section.Tuples.OfType<WixBundlePayloadTuple>().ToDictionary(t => t.Id.Id); 244 payloadSymbols = section.Symbols.OfType<WixBundlePayloadSymbol>().ToDictionary(t => t.Id.Id);
245 245
246 // Process the payloads that were added by processing the packages. 246 // Process the payloads that were added by processing the packages.
247 { 247 {
248 var toProcess = payloadTuples.Values.Where(r => !processedPayloads.Contains(r.Id.Id)).ToList(); 248 var toProcess = payloadSymbols.Values.Where(r => !processedPayloads.Contains(r.Id.Id)).ToList();
249 249
250 var command = new ProcessPayloadsCommand(this.ServiceProvider, this.BackendHelper, toProcess, bundleTuple.DefaultPackagingType, layoutDirectory); 250 var command = new ProcessPayloadsCommand(this.ServiceProvider, this.BackendHelper, toProcess, bundleSymbol.DefaultPackagingType, layoutDirectory);
251 command.Execute(); 251 command.Execute();
252 252
253 fileTransfers.AddRange(command.FileTransfers); 253 fileTransfers.AddRange(command.FileTransfers);
@@ -258,34 +258,34 @@ namespace WixToolset.Core.Burn
258 258
259 // Set the package metadata from the payloads now that we have the complete payload information. 259 // Set the package metadata from the payloads now that we have the complete payload information.
260 { 260 {
261 var payloadsByPackageId = payloadTuples.Values.ToLookup(p => p.PackageRef); 261 var payloadsByPackageId = payloadSymbols.Values.ToLookup(p => p.PackageRef);
262 262
263 foreach (var facade in facades.Values) 263 foreach (var facade in facades.Values)
264 { 264 {
265 facade.PackageTuple.Size = 0; 265 facade.PackageSymbol.Size = 0;
266 266
267 var packagePayloads = payloadsByPackageId[facade.PackageId]; 267 var packagePayloads = payloadsByPackageId[facade.PackageId];
268 268
269 foreach (var payload in packagePayloads) 269 foreach (var payload in packagePayloads)
270 { 270 {
271 facade.PackageTuple.Size += payload.FileSize.Value; 271 facade.PackageSymbol.Size += payload.FileSize.Value;
272 } 272 }
273 273
274 if (!facade.PackageTuple.InstallSize.HasValue) 274 if (!facade.PackageSymbol.InstallSize.HasValue)
275 { 275 {
276 facade.PackageTuple.InstallSize = facade.PackageTuple.Size; 276 facade.PackageSymbol.InstallSize = facade.PackageSymbol.Size;
277 } 277 }
278 278
279 var packagePayload = payloadTuples[facade.PackageTuple.PayloadRef]; 279 var packagePayload = payloadSymbols[facade.PackageSymbol.PayloadRef];
280 280
281 if (String.IsNullOrEmpty(facade.PackageTuple.Description)) 281 if (String.IsNullOrEmpty(facade.PackageSymbol.Description))
282 { 282 {
283 facade.PackageTuple.Description = packagePayload.Description; 283 facade.PackageSymbol.Description = packagePayload.Description;
284 } 284 }
285 285
286 if (String.IsNullOrEmpty(facade.PackageTuple.DisplayName)) 286 if (String.IsNullOrEmpty(facade.PackageSymbol.DisplayName))
287 { 287 {
288 facade.PackageTuple.DisplayName = packagePayload.DisplayName; 288 facade.PackageSymbol.DisplayName = packagePayload.DisplayName;
289 } 289 }
290 } 290 }
291 } 291 }
@@ -293,7 +293,7 @@ namespace WixToolset.Core.Burn
293 // Give the UX payloads their embedded IDs... 293 // Give the UX payloads their embedded IDs...
294 var uxPayloadIndex = 0; 294 var uxPayloadIndex = 0;
295 { 295 {
296 foreach (var payload in payloadTuples.Values.Where(p => BurnConstants.BurnUXContainerName == p.ContainerRef)) 296 foreach (var payload in payloadSymbols.Values.Where(p => BurnConstants.BurnUXContainerName == p.ContainerRef))
297 { 297 {
298 // In theory, UX payloads could be embedded in the UX CAB, external to the bundle EXE, or even 298 // In theory, UX payloads could be embedded in the UX CAB, external to the bundle EXE, or even
299 // downloaded. The current engine requires the UX to be fully present before any downloading starts, 299 // downloaded. The current engine requires the UX to be fully present before any downloading starts,
@@ -317,7 +317,7 @@ namespace WixToolset.Core.Burn
317 317
318 // Give the embedded payloads without an embedded id yet an embedded id. 318 // Give the embedded payloads without an embedded id yet an embedded id.
319 var payloadIndex = 0; 319 var payloadIndex = 0;
320 foreach (var payload in payloadTuples.Values) 320 foreach (var payload in payloadSymbols.Values)
321 { 321 {
322 Debug.Assert(PackagingType.Unknown != payload.Packaging); 322 Debug.Assert(PackagingType.Unknown != payload.Packaging);
323 323
@@ -341,11 +341,11 @@ namespace WixToolset.Core.Burn
341 } 341 }
342 342
343 // If catalog files exist, non-embedded payloads should validate with the catalogs. 343 // If catalog files exist, non-embedded payloads should validate with the catalogs.
344 var catalogs = section.Tuples.OfType<WixBundleCatalogTuple>().ToList(); 344 var catalogs = section.Symbols.OfType<WixBundleCatalogSymbol>().ToList();
345 345
346 if (catalogs.Count > 0) 346 if (catalogs.Count > 0)
347 { 347 {
348 var command = new VerifyPayloadsWithCatalogCommand(this.Messaging, catalogs, payloadTuples.Values); 348 var command = new VerifyPayloadsWithCatalogCommand(this.Messaging, catalogs, payloadSymbols.Values);
349 command.Execute(); 349 command.Execute();
350 } 350 }
351 351
@@ -355,12 +355,12 @@ namespace WixToolset.Core.Burn
355 } 355 }
356 356
357 IEnumerable<PackageFacade> orderedFacades; 357 IEnumerable<PackageFacade> orderedFacades;
358 IEnumerable<WixBundleRollbackBoundaryTuple> boundaries; 358 IEnumerable<WixBundleRollbackBoundarySymbol> boundaries;
359 { 359 {
360 var groupTuples = section.Tuples.OfType<WixGroupTuple>(); 360 var groupSymbols = section.Symbols.OfType<WixGroupSymbol>();
361 var boundaryTuplesById = section.Tuples.OfType<WixBundleRollbackBoundaryTuple>().ToDictionary(b => b.Id.Id); 361 var boundarySymbolsById = section.Symbols.OfType<WixBundleRollbackBoundarySymbol>().ToDictionary(b => b.Id.Id);
362 362
363 var command = new OrderPackagesAndRollbackBoundariesCommand(this.Messaging, groupTuples, boundaryTuplesById, facades); 363 var command = new OrderPackagesAndRollbackBoundariesCommand(this.Messaging, groupSymbols, boundarySymbolsById, facades);
364 command.Execute(); 364 command.Execute();
365 365
366 orderedFacades = command.OrderedPackageFacades; 366 orderedFacades = command.OrderedPackageFacades;
@@ -374,24 +374,24 @@ namespace WixToolset.Core.Burn
374 resolveDelayedFieldsCommand.Execute(); 374 resolveDelayedFieldsCommand.Execute();
375 } 375 }
376 376
377 Dictionary<string, ProvidesDependencyTuple> dependencyTuplesByKey; 377 Dictionary<string, ProvidesDependencySymbol> dependencySymbolsByKey;
378 { 378 {
379 var command = new ProcessDependencyProvidersCommand(this.Messaging, section, facades); 379 var command = new ProcessDependencyProvidersCommand(this.Messaging, section, facades);
380 command.Execute(); 380 command.Execute();
381 381
382 if (!String.IsNullOrEmpty(command.BundleProviderKey)) 382 if (!String.IsNullOrEmpty(command.BundleProviderKey))
383 { 383 {
384 bundleTuple.ProviderKey = command.BundleProviderKey; // set the overridable bundle provider key. 384 bundleSymbol.ProviderKey = command.BundleProviderKey; // set the overridable bundle provider key.
385 } 385 }
386 dependencyTuplesByKey = command.DependencyTuplesByKey; 386 dependencySymbolsByKey = command.DependencySymbolsByKey;
387 } 387 }
388 388
389 // Update the bundle per-machine/per-user scope based on the chained packages. 389 // Update the bundle per-machine/per-user scope based on the chained packages.
390 this.ResolveBundleInstallScope(section, bundleTuple, orderedFacades); 390 this.ResolveBundleInstallScope(section, bundleSymbol, orderedFacades);
391 391
392 // Generate data for all manifests. 392 // Generate data for all manifests.
393 { 393 {
394 var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchTuplesById); 394 var command = new GenerateManifestDataFromIRCommand(this.Messaging, section, this.BackendExtensions, this.InternalBurnBackendHelper, extensionSearchSymbolsById);
395 command.Execute(); 395 command.Execute();
396 } 396 }
397 397
@@ -409,12 +409,12 @@ namespace WixToolset.Core.Burn
409 // Generate the core-defined BA manifest tables... 409 // Generate the core-defined BA manifest tables...
410 string baManifestPath; 410 string baManifestPath;
411 { 411 {
412 var command = new CreateBootstrapperApplicationManifestCommand(section, bundleTuple, orderedFacades, uxPayloadIndex, payloadTuples, this.IntermediateFolder, this.InternalBurnBackendHelper); 412 var command = new CreateBootstrapperApplicationManifestCommand(section, bundleSymbol, orderedFacades, uxPayloadIndex, payloadSymbols, this.IntermediateFolder, this.InternalBurnBackendHelper);
413 command.Execute(); 413 command.Execute();
414 414
415 var baManifestPayload = command.BootstrapperApplicationManifestPayloadRow; 415 var baManifestPayload = command.BootstrapperApplicationManifestPayloadRow;
416 baManifestPath = command.OutputPath; 416 baManifestPath = command.OutputPath;
417 payloadTuples.Add(baManifestPayload.Id.Id, baManifestPayload); 417 payloadSymbols.Add(baManifestPayload.Id.Id, baManifestPayload);
418 ++uxPayloadIndex; 418 ++uxPayloadIndex;
419 419
420 trackedFiles.Add(this.BackendHelper.TrackFile(baManifestPath, TrackedFileType.Temporary)); 420 trackedFiles.Add(this.BackendHelper.TrackFile(baManifestPath, TrackedFileType.Temporary));
@@ -423,12 +423,12 @@ namespace WixToolset.Core.Burn
423 // Generate the bundle extension manifest... 423 // Generate the bundle extension manifest...
424 string bextManifestPath; 424 string bextManifestPath;
425 { 425 {
426 var command = new CreateBundleExtensionManifestCommand(section, bundleTuple, uxPayloadIndex, this.IntermediateFolder, this.InternalBurnBackendHelper); 426 var command = new CreateBundleExtensionManifestCommand(section, bundleSymbol, uxPayloadIndex, this.IntermediateFolder, this.InternalBurnBackendHelper);
427 command.Execute(); 427 command.Execute();
428 428
429 var bextManifestPayload = command.BundleExtensionManifestPayloadRow; 429 var bextManifestPayload = command.BundleExtensionManifestPayloadRow;
430 bextManifestPath = command.OutputPath; 430 bextManifestPath = command.OutputPath;
431 payloadTuples.Add(bextManifestPayload.Id.Id, bextManifestPayload); 431 payloadSymbols.Add(bextManifestPayload.Id.Id, bextManifestPayload);
432 ++uxPayloadIndex; 432 ++uxPayloadIndex;
433 433
434 trackedFiles.Add(this.BackendHelper.TrackFile(bextManifestPath, TrackedFileType.Temporary)); 434 trackedFiles.Add(this.BackendHelper.TrackFile(bextManifestPath, TrackedFileType.Temporary));
@@ -436,11 +436,11 @@ namespace WixToolset.Core.Burn
436 436
437 // Create all the containers except the UX container first so the manifest (that goes in the UX container) 437 // Create all the containers except the UX container first so the manifest (that goes in the UX container)
438 // can contain all size and hash information about the non-UX containers. 438 // can contain all size and hash information about the non-UX containers.
439 WixBundleContainerTuple uxContainer; 439 WixBundleContainerSymbol uxContainer;
440 IEnumerable<WixBundlePayloadTuple> uxPayloads; 440 IEnumerable<WixBundlePayloadSymbol> uxPayloads;
441 IEnumerable<WixBundleContainerTuple> containers; 441 IEnumerable<WixBundleContainerSymbol> containers;
442 { 442 {
443 var command = new CreateNonUXContainers(this.BackendHelper, section, bundleApplicationTuple, payloadTuples, this.IntermediateFolder, layoutDirectory, this.DefaultCompressionLevel); 443 var command = new CreateNonUXContainers(this.BackendHelper, section, bundleApplicationSymbol, payloadSymbols, this.IntermediateFolder, layoutDirectory, this.DefaultCompressionLevel);
444 command.Execute(); 444 command.Execute();
445 445
446 fileTransfers.AddRange(command.FileTransfers); 446 fileTransfers.AddRange(command.FileTransfers);
@@ -450,13 +450,13 @@ namespace WixToolset.Core.Burn
450 uxPayloads = command.UXContainerPayloads; 450 uxPayloads = command.UXContainerPayloads;
451 containers = command.Containers; 451 containers = command.Containers;
452 } 452 }
453 453
454 // Create the bundle manifest. 454 // Create the bundle manifest.
455 string manifestPath; 455 string manifestPath;
456 { 456 {
457 var executableName = Path.GetFileName(this.OutputPath); 457 var executableName = Path.GetFileName(this.OutputPath);
458 458
459 var command = new CreateBurnManifestCommand(this.Messaging, this.BackendExtensions, executableName, section, bundleTuple, containers, chainTuple, orderedFacades, boundaries, uxPayloads, payloadTuples, orderedSearches, catalogs, this.IntermediateFolder); 459 var command = new CreateBurnManifestCommand(this.Messaging, this.BackendExtensions, executableName, section, bundleSymbol, containers, chainSymbol, orderedFacades, boundaries, uxPayloads, payloadSymbols, orderedSearches, catalogs, this.IntermediateFolder);
460 command.Execute(); 460 command.Execute();
461 461
462 manifestPath = command.OutputPath; 462 manifestPath = command.OutputPath;
@@ -475,7 +475,7 @@ namespace WixToolset.Core.Burn
475 } 475 }
476 476
477 { 477 {
478 var command = new CreateBundleExeCommand(this.Messaging, this.BackendHelper, this.IntermediateFolder, this.OutputPath, bundleTuple, uxContainer, containers); 478 var command = new CreateBundleExeCommand(this.Messaging, this.BackendHelper, this.IntermediateFolder, this.OutputPath, bundleSymbol, uxContainer, containers);
479 command.Execute(); 479 command.Execute();
480 480
481 fileTransfers.Add(command.Transfer); 481 fileTransfers.Add(command.Transfer);
@@ -483,7 +483,7 @@ namespace WixToolset.Core.Burn
483 } 483 }
484 484
485#if TODO // does this need to come back, or do they only need to be in TrackedFiles? 485#if TODO // does this need to come back, or do they only need to be in TrackedFiles?
486 this.ContentFilePaths = payloadTuples.Values.Where(p => p.ContentFile).Select(p => p.FullFileName).ToList(); 486 this.ContentFilePaths = payloadSymbols.Values.Where(p => p.ContentFile).Select(p => p.FullFileName).ToList();
487#endif 487#endif
488 this.FileTransfers = fileTransfers; 488 this.FileTransfers = fileTransfers;
489 this.TrackedFiles = trackedFiles; 489 this.TrackedFiles = trackedFiles;
@@ -522,7 +522,7 @@ namespace WixToolset.Core.Burn
522 /// </summary> 522 /// </summary>
523 /// <param name="package">The package with properties to cache.</param> 523 /// <param name="package">The package with properties to cache.</param>
524 /// <param name="variableCache">The property cache.</param> 524 /// <param name="variableCache">The property cache.</param>
525 private static void PopulatePackageVariableCache(WixBundlePackageTuple package, IDictionary<string, string> variableCache) 525 private static void PopulatePackageVariableCache(WixBundlePackageSymbol package, IDictionary<string, string> variableCache)
526 { 526 {
527 var id = package.Id.Id; 527 var id = package.Id.Id;
528 528
@@ -533,17 +533,17 @@ namespace WixToolset.Core.Burn
533 variableCache.Add(String.Concat("packageVersion.", id), package.Version); 533 variableCache.Add(String.Concat("packageVersion.", id), package.Version);
534 } 534 }
535 535
536 private void ResolveBundleInstallScope(IntermediateSection section, WixBundleTuple bundleTuple, IEnumerable<PackageFacade> facades) 536 private void ResolveBundleInstallScope(IntermediateSection section, WixBundleSymbol bundleSymbol, IEnumerable<PackageFacade> facades)
537 { 537 {
538 var dependencyTuplesById = section.Tuples.OfType<ProvidesDependencyTuple>().ToDictionary(t => t.Id.Id); 538 var dependencySymbolsById = section.Symbols.OfType<ProvidesDependencySymbol>().ToDictionary(t => t.Id.Id);
539 539
540 foreach (var facade in facades) 540 foreach (var facade in facades)
541 { 541 {
542 if (bundleTuple.PerMachine && YesNoDefaultType.No == facade.PackageTuple.PerMachine) 542 if (bundleSymbol.PerMachine && YesNoDefaultType.No == facade.PackageSymbol.PerMachine)
543 { 543 {
544 this.Messaging.Write(VerboseMessages.SwitchingToPerUserPackage(facade.PackageTuple.SourceLineNumbers, facade.PackageId)); 544 this.Messaging.Write(VerboseMessages.SwitchingToPerUserPackage(facade.PackageSymbol.SourceLineNumbers, facade.PackageId));
545 545
546 bundleTuple.Attributes &= ~WixBundleAttributes.PerMachine; 546 bundleSymbol.Attributes &= ~WixBundleAttributes.PerMachine;
547 break; 547 break;
548 } 548 }
549 } 549 }
@@ -551,45 +551,45 @@ namespace WixToolset.Core.Burn
551 foreach (var facade in facades) 551 foreach (var facade in facades)
552 { 552 {
553 // Update package scope from bundle scope if default. 553 // Update package scope from bundle scope if default.
554 if (YesNoDefaultType.Default == facade.PackageTuple.PerMachine) 554 if (YesNoDefaultType.Default == facade.PackageSymbol.PerMachine)
555 { 555 {
556 facade.PackageTuple.PerMachine = bundleTuple.PerMachine ? YesNoDefaultType.Yes : YesNoDefaultType.No; 556 facade.PackageSymbol.PerMachine = bundleSymbol.PerMachine ? YesNoDefaultType.Yes : YesNoDefaultType.No;
557 } 557 }
558 558
559 // We will only register packages in the same scope as the bundle. Warn if any packages with providers 559 // We will only register packages in the same scope as the bundle. Warn if any packages with providers
560 // are in a different scope and not permanent (permanents typically don't need a ref-count). 560 // are in a different scope and not permanent (permanents typically don't need a ref-count).
561 if (!bundleTuple.PerMachine && 561 if (!bundleSymbol.PerMachine &&
562 YesNoDefaultType.Yes == facade.PackageTuple.PerMachine && 562 YesNoDefaultType.Yes == facade.PackageSymbol.PerMachine &&
563 !facade.PackageTuple.Permanent && 563 !facade.PackageSymbol.Permanent &&
564 dependencyTuplesById.ContainsKey(facade.PackageId)) 564 dependencySymbolsById.ContainsKey(facade.PackageId))
565 { 565 {
566 this.Messaging.Write(WarningMessages.NoPerMachineDependencies(facade.PackageTuple.SourceLineNumbers, facade.PackageId)); 566 this.Messaging.Write(WarningMessages.NoPerMachineDependencies(facade.PackageSymbol.SourceLineNumbers, facade.PackageId));
567 } 567 }
568 } 568 }
569 } 569 }
570 570
571 private IEnumerable<T> GetRequiredTuples<T>() where T : IntermediateTuple 571 private IEnumerable<T> GetRequiredSymbols<T>() where T : IntermediateSymbol
572 { 572 {
573 var tuples = this.Output.Sections.Single().Tuples.OfType<T>().ToList(); 573 var symbols = this.Output.Sections.Single().Symbols.OfType<T>().ToList();
574 574
575 if (0 == tuples.Count) 575 if (0 == symbols.Count)
576 { 576 {
577 throw new WixException(ErrorMessages.MissingBundleInformation(nameof(T))); 577 throw new WixException(ErrorMessages.MissingBundleInformation(nameof(T)));
578 } 578 }
579 579
580 return tuples; 580 return symbols;
581 } 581 }
582 582
583 private T GetSingleTuple<T>() where T : IntermediateTuple 583 private T GetSingleSymbol<T>() where T : IntermediateSymbol
584 { 584 {
585 var tuples = this.Output.Sections.Single().Tuples.OfType<T>().ToList(); 585 var symbols = this.Output.Sections.Single().Symbols.OfType<T>().ToList();
586 586
587 if (1 != tuples.Count) 587 if (1 != symbols.Count)
588 { 588 {
589 throw new WixException(ErrorMessages.MissingBundleInformation(nameof(T))); 589 throw new WixException(ErrorMessages.MissingBundleInformation(nameof(T)));
590 } 590 }
591 591
592 return tuples[0]; 592 return symbols[0];
593 } 593 }
594 } 594 }
595} 595}