aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs')
-rw-r--r--src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs72
1 files changed, 36 insertions, 36 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs b/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs
index e228b296..29815203 100644
--- a/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs
+++ b/src/WixToolset.Core.Burn/Bind/ProcessDependencyProvidersCommand.cs
@@ -8,7 +8,7 @@ namespace WixToolset.Core.Burn.Bind
8 using WixToolset.Data; 8 using WixToolset.Data;
9 using WixToolset.Core.Burn.Bundles; 9 using WixToolset.Core.Burn.Bundles;
10 using WixToolset.Extensibility.Services; 10 using WixToolset.Extensibility.Services;
11 using WixToolset.Data.Tuples; 11 using WixToolset.Data.Symbols;
12 12
13 internal class ProcessDependencyProvidersCommand 13 internal class ProcessDependencyProvidersCommand
14 { 14 {
@@ -22,7 +22,7 @@ namespace WixToolset.Core.Burn.Bind
22 22
23 public string BundleProviderKey { get; private set; } 23 public string BundleProviderKey { get; private set; }
24 24
25 public Dictionary<string, ProvidesDependencyTuple> DependencyTuplesByKey { get; private set; } 25 public Dictionary<string, ProvidesDependencySymbol> DependencySymbolsByKey { get; private set; }
26 26
27 private IMessaging Messaging { get; } 27 private IMessaging Messaging { get; }
28 28
@@ -38,42 +38,42 @@ namespace WixToolset.Core.Burn.Bind
38 /// </summary> 38 /// </summary>
39 public void Execute() 39 public void Execute()
40 { 40 {
41 var wixDependencyProviderTuples = this.Section.Tuples.OfType<WixDependencyProviderTuple>(); 41 var wixDependencyProviderSymbols = this.Section.Symbols.OfType<WixDependencyProviderSymbol>();
42 42
43 foreach (var wixDependencyProviderTuple in wixDependencyProviderTuples) 43 foreach (var wixDependencyProviderSymbol in wixDependencyProviderSymbols)
44 { 44 {
45 // Sets the provider key for the bundle, if it is not set already. 45 // Sets the provider key for the bundle, if it is not set already.
46 if (String.IsNullOrEmpty(this.BundleProviderKey)) 46 if (String.IsNullOrEmpty(this.BundleProviderKey))
47 { 47 {
48 if (wixDependencyProviderTuple.Bundle) 48 if (wixDependencyProviderSymbol.Bundle)
49 { 49 {
50 this.BundleProviderKey = wixDependencyProviderTuple.ProviderKey; 50 this.BundleProviderKey = wixDependencyProviderSymbol.ProviderKey;
51 } 51 }
52 } 52 }
53 53
54 // Import any authored dependencies. These may merge with imported provides from MSI packages. 54 // Import any authored dependencies. These may merge with imported provides from MSI packages.
55 var packageId = wixDependencyProviderTuple.Id.Id; 55 var packageId = wixDependencyProviderSymbol.Id.Id;
56 56
57 if (this.Facades.TryGetValue(packageId, out var facade)) 57 if (this.Facades.TryGetValue(packageId, out var facade))
58 { 58 {
59 var dependency = this.Section.AddTuple(new ProvidesDependencyTuple(wixDependencyProviderTuple.SourceLineNumbers, wixDependencyProviderTuple.Id) 59 var dependency = this.Section.AddSymbol(new ProvidesDependencySymbol(wixDependencyProviderSymbol.SourceLineNumbers, wixDependencyProviderSymbol.Id)
60 { 60 {
61 PackageRef = packageId, 61 PackageRef = packageId,
62 Key = wixDependencyProviderTuple.ProviderKey, 62 Key = wixDependencyProviderSymbol.ProviderKey,
63 Version = wixDependencyProviderTuple.Version, 63 Version = wixDependencyProviderSymbol.Version,
64 DisplayName = wixDependencyProviderTuple.DisplayName, 64 DisplayName = wixDependencyProviderSymbol.DisplayName,
65 Attributes = (int)wixDependencyProviderTuple.Attributes 65 Attributes = (int)wixDependencyProviderSymbol.Attributes
66 }); 66 });
67 67
68 if (String.IsNullOrEmpty(dependency.Key)) 68 if (String.IsNullOrEmpty(dependency.Key))
69 { 69 {
70 switch (facade.SpecificPackageTuple) 70 switch (facade.SpecificPackageSymbol)
71 { 71 {
72 // The WixDependencyExtension allows an empty Key for MSIs and MSPs. 72 // The WixDependencyExtension allows an empty Key for MSIs and MSPs.
73 case WixBundleMsiPackageTuple msiPackage: 73 case WixBundleMsiPackageSymbol msiPackage:
74 dependency.Key = msiPackage.ProductCode; 74 dependency.Key = msiPackage.ProductCode;
75 break; 75 break;
76 case WixBundleMspPackageTuple mspPackage: 76 case WixBundleMspPackageSymbol mspPackage:
77 dependency.Key = mspPackage.PatchCode; 77 dependency.Key = mspPackage.PatchCode;
78 break; 78 break;
79 } 79 }
@@ -81,7 +81,7 @@ namespace WixToolset.Core.Burn.Bind
81 81
82 if (String.IsNullOrEmpty(dependency.Version)) 82 if (String.IsNullOrEmpty(dependency.Version))
83 { 83 {
84 dependency.Version = facade.PackageTuple.Version; 84 dependency.Version = facade.PackageSymbol.Version;
85 } 85 }
86 86
87 // If the version is still missing, a version could not be harvested from the package and was not authored. 87 // If the version is still missing, a version could not be harvested from the package and was not authored.
@@ -92,55 +92,55 @@ namespace WixToolset.Core.Burn.Bind
92 92
93 if (String.IsNullOrEmpty(dependency.DisplayName)) 93 if (String.IsNullOrEmpty(dependency.DisplayName))
94 { 94 {
95 dependency.DisplayName = facade.PackageTuple.DisplayName; 95 dependency.DisplayName = facade.PackageSymbol.DisplayName;
96 } 96 }
97 } 97 }
98 } 98 }
99 99
100 this.DependencyTuplesByKey = this.GetDependencyTuplesByKey(); 100 this.DependencySymbolsByKey = this.GetDependencySymbolsByKey();
101 101
102 // Generate providers for MSI and MSP packages that still do not have providers. 102 // Generate providers for MSI and MSP packages that still do not have providers.
103 foreach (var facade in this.Facades.Values) 103 foreach (var facade in this.Facades.Values)
104 { 104 {
105 string key = null; 105 string key = null;
106 106
107 //if (WixBundlePackageType.Msi == facade.PackageTuple.Type) 107 //if (WixBundlePackageType.Msi == facade.PackageSymbol.Type)
108 if (facade.SpecificPackageTuple is WixBundleMsiPackageTuple msiPackage) 108 if (facade.SpecificPackageSymbol is WixBundleMsiPackageSymbol msiPackage)
109 { 109 {
110 //var msiPackage = (WixBundleMsiPackageTuple)facade.SpecificPackageTuple; 110 //var msiPackage = (WixBundleMsiPackageSymbol)facade.SpecificPackageSymbol;
111 key = msiPackage.ProductCode; 111 key = msiPackage.ProductCode;
112 } 112 }
113 //else if (WixBundlePackageType.Msp == facade.PackageTuple.Type) 113 //else if (WixBundlePackageType.Msp == facade.PackageSymbol.Type)
114 else if (facade.SpecificPackageTuple is WixBundleMspPackageTuple mspPackage) 114 else if (facade.SpecificPackageSymbol is WixBundleMspPackageSymbol mspPackage)
115 { 115 {
116 //var mspPackage = (WixBundleMspPackageTuple)facade.SpecificPackageTuple; 116 //var mspPackage = (WixBundleMspPackageSymbol)facade.SpecificPackageSymbol;
117 key = mspPackage.PatchCode; 117 key = mspPackage.PatchCode;
118 } 118 }
119 119
120 if (!String.IsNullOrEmpty(key) && !this.DependencyTuplesByKey.ContainsKey(key)) 120 if (!String.IsNullOrEmpty(key) && !this.DependencySymbolsByKey.ContainsKey(key))
121 { 121 {
122 var dependency = this.Section.AddTuple(new ProvidesDependencyTuple(facade.PackageTuple.SourceLineNumbers, facade.PackageTuple.Id) 122 var dependency = this.Section.AddSymbol(new ProvidesDependencySymbol(facade.PackageSymbol.SourceLineNumbers, facade.PackageSymbol.Id)
123 { 123 {
124 PackageRef = facade.PackageId, 124 PackageRef = facade.PackageId,
125 Key = key, 125 Key = key,
126 Version = facade.PackageTuple.Version, 126 Version = facade.PackageSymbol.Version,
127 DisplayName = facade.PackageTuple.DisplayName 127 DisplayName = facade.PackageSymbol.DisplayName
128 }); 128 });
129 129
130 this.DependencyTuplesByKey.Add(dependency.Key, dependency); 130 this.DependencySymbolsByKey.Add(dependency.Key, dependency);
131 } 131 }
132 } 132 }
133 } 133 }
134 134
135 private Dictionary<string, ProvidesDependencyTuple> GetDependencyTuplesByKey() 135 private Dictionary<string, ProvidesDependencySymbol> GetDependencySymbolsByKey()
136 { 136 {
137 var dependencyTuplesByKey = new Dictionary<string, ProvidesDependencyTuple>(); 137 var dependencySymbolsByKey = new Dictionary<string, ProvidesDependencySymbol>();
138 138
139 var dependencyTuples = this.Section.Tuples.OfType<ProvidesDependencyTuple>(); 139 var dependencySymbols = this.Section.Symbols.OfType<ProvidesDependencySymbol>();
140 140
141 foreach (var dependency in dependencyTuples) 141 foreach (var dependency in dependencySymbols)
142 { 142 {
143 if (dependencyTuplesByKey.TryGetValue(dependency.Key, out var collision)) 143 if (dependencySymbolsByKey.TryGetValue(dependency.Key, out var collision))
144 { 144 {
145 // If not a perfect dependency collision, display an error. 145 // If not a perfect dependency collision, display an error.
146 if (dependency.Key != collision.Key || 146 if (dependency.Key != collision.Key ||
@@ -152,11 +152,11 @@ namespace WixToolset.Core.Burn.Bind
152 } 152 }
153 else 153 else
154 { 154 {
155 dependencyTuplesByKey.Add(dependency.Key, dependency); 155 dependencySymbolsByKey.Add(dependency.Key, dependency);
156 } 156 }
157 } 157 }
158 158
159 return dependencyTuplesByKey; 159 return dependencySymbolsByKey;
160 } 160 }
161 } 161 }
162} 162}