From d529525a1e331f3ef9ec2707791c99bd78fdd82f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 30 May 2020 14:53:05 -0700 Subject: Basic patching support --- .../Bind/UpdateFileFacadesCommand.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs') diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs index 4ca5ec48..63a8b3d9 100644 --- a/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs +++ b/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs @@ -39,20 +39,16 @@ namespace WixToolset.Core.WindowsInstaller.Bind public void Execute() { + var assemblyNameTuples = this.Section.Tuples.OfType().ToDictionary(t => t.Id.Id); + foreach (var file in this.UpdateFileFacades) { - this.UpdateFileFacade(file); + this.UpdateFileFacade(file, assemblyNameTuples); } } - private void UpdateFileFacade(FileFacade facade) + private void UpdateFileFacade(FileFacade facade, Dictionary assemblyNameTuples) { - var assemblyNameTuples = new Dictionary(); - foreach (var assemblyTuple in this.Section.Tuples.OfType()) - { - assemblyNameTuples.Add(assemblyTuple.ComponentRef + "/" + assemblyTuple.Name, assemblyTuple); - } - FileInfo fileInfo = null; try { @@ -335,7 +331,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind var lookup = String.Concat(facade.ComponentRef, "/", name); if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameTuple)) { - assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber) + assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber, new Identifier(AccessModifier.Private, facade.ComponentRef, name)) { ComponentRef = facade.ComponentRef, Name = name, @@ -348,6 +344,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind } facade.AssemblyNames.Add(assemblyNameTuple); + + assemblyNameTuples.Add(assemblyNameTuple.Id.Id, assemblyNameTuple); } assemblyNameTuple.Value = value; -- cgit v1.2.3-55-g6feb