aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-05-30 14:53:05 -0700
committerRob Mensching <rob@firegiant.com>2020-05-30 15:07:21 -0700
commitd529525a1e331f3ef9ec2707791c99bd78fdd82f (patch)
tree1d9fe1f0c0ee9850371c916802eb03ec9dc37a87 /src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs
parent9c54d2fce80983bbee5f0f113b5aa30f22bc8a23 (diff)
downloadwix-d529525a1e331f3ef9ec2707791c99bd78fdd82f.tar.gz
wix-d529525a1e331f3ef9ec2707791c99bd78fdd82f.tar.bz2
wix-d529525a1e331f3ef9ec2707791c99bd78fdd82f.zip
Basic patching support
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs')
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/UpdateFileFacadesCommand.cs16
1 files changed, 7 insertions, 9 deletions
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
39 39
40 public void Execute() 40 public void Execute()
41 { 41 {
42 var assemblyNameTuples = this.Section.Tuples.OfType<MsiAssemblyNameTuple>().ToDictionary(t => t.Id.Id);
43
42 foreach (var file in this.UpdateFileFacades) 44 foreach (var file in this.UpdateFileFacades)
43 { 45 {
44 this.UpdateFileFacade(file); 46 this.UpdateFileFacade(file, assemblyNameTuples);
45 } 47 }
46 } 48 }
47 49
48 private void UpdateFileFacade(FileFacade facade) 50 private void UpdateFileFacade(FileFacade facade, Dictionary<string, MsiAssemblyNameTuple> assemblyNameTuples)
49 { 51 {
50 var assemblyNameTuples = new Dictionary<string, MsiAssemblyNameTuple>();
51 foreach (var assemblyTuple in this.Section.Tuples.OfType<MsiAssemblyNameTuple>())
52 {
53 assemblyNameTuples.Add(assemblyTuple.ComponentRef + "/" + assemblyTuple.Name, assemblyTuple);
54 }
55
56 FileInfo fileInfo = null; 52 FileInfo fileInfo = null;
57 try 53 try
58 { 54 {
@@ -335,7 +331,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
335 var lookup = String.Concat(facade.ComponentRef, "/", name); 331 var lookup = String.Concat(facade.ComponentRef, "/", name);
336 if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameTuple)) 332 if (!assemblyNameTuples.TryGetValue(lookup, out var assemblyNameTuple))
337 { 333 {
338 assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber) 334 assemblyNameTuple = this.Section.AddTuple(new MsiAssemblyNameTuple(facade.SourceLineNumber, new Identifier(AccessModifier.Private, facade.ComponentRef, name))
339 { 335 {
340 ComponentRef = facade.ComponentRef, 336 ComponentRef = facade.ComponentRef,
341 Name = name, 337 Name = name,
@@ -348,6 +344,8 @@ namespace WixToolset.Core.WindowsInstaller.Bind
348 } 344 }
349 345
350 facade.AssemblyNames.Add(assemblyNameTuple); 346 facade.AssemblyNames.Add(assemblyNameTuple);
347
348 assemblyNameTuples.Add(assemblyNameTuple.Id.Id, assemblyNameTuple);
351 } 349 }
352 350
353 assemblyNameTuple.Value = value; 351 assemblyNameTuple.Value = value;