aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/CommandLine/BuildCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/CommandLine/BuildCommand.cs')
-rw-r--r--src/WixToolset.Core/CommandLine/BuildCommand.cs81
1 files changed, 44 insertions, 37 deletions
diff --git a/src/WixToolset.Core/CommandLine/BuildCommand.cs b/src/WixToolset.Core/CommandLine/BuildCommand.cs
index 0868a3b6..a55fb55b 100644
--- a/src/WixToolset.Core/CommandLine/BuildCommand.cs
+++ b/src/WixToolset.Core/CommandLine/BuildCommand.cs
@@ -294,47 +294,54 @@ namespace WixToolset.Core.CommandLine
294 return; 294 return;
295 } 295 }
296 296
297 IBindResult bindResult; 297 IBindResult bindResult = null;
298 try
298 { 299 {
299 var context = this.ServiceProvider.GetService<IBindContext>(); 300 {
300 //context.CabbingThreadCount = this.CabbingThreadCount; 301 var context = this.ServiceProvider.GetService<IBindContext>();
301 context.BurnStubPath = burnStubPath; 302 //context.CabbingThreadCount = this.CabbingThreadCount;
302 context.CabCachePath = cabCachePath; 303 context.BurnStubPath = burnStubPath;
303 context.Codepage = resolveResult.Codepage; 304 context.CabCachePath = cabCachePath;
304 //context.DefaultCompressionLevel = this.DefaultCompressionLevel; 305 context.Codepage = resolveResult.Codepage;
305 context.DelayedFields = resolveResult.DelayedFields; 306 //context.DefaultCompressionLevel = this.DefaultCompressionLevel;
306 context.ExpectedEmbeddedFiles = resolveResult.ExpectedEmbeddedFiles; 307 context.DelayedFields = resolveResult.DelayedFields;
307 context.Extensions = this.ExtensionManager.GetServices<IBinderExtension>(); 308 context.ExpectedEmbeddedFiles = resolveResult.ExpectedEmbeddedFiles;
308 context.Ices = Array.Empty<string>(); // TODO: set this correctly 309 context.Extensions = this.ExtensionManager.GetServices<IBinderExtension>();
309 context.IntermediateFolder = intermediateFolder; 310 context.Ices = Array.Empty<string>(); // TODO: set this correctly
310 context.IntermediateRepresentation = resolveResult.IntermediateRepresentation; 311 context.IntermediateFolder = intermediateFolder;
311 context.OutputPath = this.OutputFile; 312 context.IntermediateRepresentation = resolveResult.IntermediateRepresentation;
312 context.OutputPdbPath = Path.ChangeExtension(this.OutputFile, ".wixpdb"); 313 context.OutputPath = this.OutputFile;
313 context.SuppressIces = Array.Empty<string>(); // TODO: set this correctly 314 context.OutputPdbPath = Path.ChangeExtension(this.OutputFile, ".wixpdb");
314 context.SuppressValidation = true; // TODO: set this correctly 315 context.SuppressIces = Array.Empty<string>(); // TODO: set this correctly
315 316 context.SuppressValidation = true; // TODO: set this correctly
316 var binder = this.ServiceProvider.GetService<IBinder>(); 317
317 bindResult = binder.Bind(context); 318 var binder = this.ServiceProvider.GetService<IBinder>();
318 } 319 bindResult = binder.Bind(context);
320 }
319 321
320 if (this.Messaging.EncounteredError) 322 if (this.Messaging.EncounteredError)
321 { 323 {
322 return; 324 return;
323 } 325 }
324 326
327 {
328 var context = this.ServiceProvider.GetService<ILayoutContext>();
329 context.Extensions = this.ExtensionManager.GetServices<ILayoutExtension>();
330 context.TrackedFiles = bindResult.TrackedFiles;
331 context.FileTransfers = bindResult.FileTransfers;
332 context.IntermediateFolder = intermediateFolder;
333 context.ContentsFile = this.ContentsFile;
334 context.OutputsFile = this.OutputsFile;
335 context.BuiltOutputsFile = this.BuiltOutputsFile;
336 context.SuppressAclReset = false; // TODO: correctly set SuppressAclReset
337
338 var layout = this.ServiceProvider.GetService<ILayoutCreator>();
339 layout.Layout(context);
340 }
341 }
342 finally
325 { 343 {
326 var context = this.ServiceProvider.GetService<ILayoutContext>(); 344 bindResult?.Dispose();
327 context.Extensions = this.ExtensionManager.GetServices<ILayoutExtension>();
328 context.TrackedFiles = bindResult.TrackedFiles;
329 context.FileTransfers = bindResult.FileTransfers;
330 context.IntermediateFolder = intermediateFolder;
331 context.ContentsFile = this.ContentsFile;
332 context.OutputsFile = this.OutputsFile;
333 context.BuiltOutputsFile = this.BuiltOutputsFile;
334 context.SuppressAclReset = false; // TODO: correctly set SuppressAclReset
335
336 var layout = this.ServiceProvider.GetService<ILayoutCreator>();
337 layout.Layout(context);
338 } 345 }
339 } 346 }
340 347