From 816bfd180f132a9b07aaa573f5ac0f5948195764 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 3 Mar 2021 10:37:34 -0800 Subject: Complete MOVE_TO_BACKEND code migration Fixes wixtoolset/issues#6212 --- .../Bind/OptimizeFileFacadesOrderCommand.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs index e96dfd91..67515154 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/OptimizeFileFacadesOrderCommand.cs @@ -36,7 +36,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind { var canonicalComponentTargetPaths = this.ComponentTargetPaths(); - this.FileFacades.Sort(new FileFacadeOptimizer(canonicalComponentTargetPaths)); + this.FileFacades.Sort(new FileFacadeOptimizer(canonicalComponentTargetPaths, this.Section.Type == SectionType.Module)); return this.FileFacades; } @@ -71,17 +71,21 @@ namespace WixToolset.Core.WindowsInstaller.Bind private class FileFacadeOptimizer : IComparer { - public FileFacadeOptimizer(Dictionary componentTargetPaths) + public FileFacadeOptimizer(Dictionary componentTargetPaths, bool optimizingMergeModule) { this.ComponentTargetPaths = componentTargetPaths; + this.OptimizingMergeModule = optimizingMergeModule; } private Dictionary ComponentTargetPaths { get; } + private bool OptimizingMergeModule { get; } + public int Compare(FileFacade x, FileFacade y) { - // First group files by DiskId. - var compare = x.DiskId.CompareTo(y.DiskId); + // First group files by DiskId but ignore if processing a Merge Module + // because Merge Modules don't have separate disks. + var compare = this.OptimizingMergeModule ? 0 : x.DiskId.CompareTo(y.DiskId); if (compare != 0) { -- cgit v1.2.3-55-g6feb