aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Core/Resolver.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Core/Resolver.cs')
-rw-r--r--src/WixToolset.Core/Resolver.cs29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/WixToolset.Core/Resolver.cs b/src/WixToolset.Core/Resolver.cs
index b0d3a189..1b72e3d0 100644
--- a/src/WixToolset.Core/Resolver.cs
+++ b/src/WixToolset.Core/Resolver.cs
@@ -16,34 +16,31 @@ namespace WixToolset.Core
16 /// </summary> 16 /// </summary>
17 public sealed class Resolver 17 public sealed class Resolver
18 { 18 {
19 public Resolver(IServiceProvider serviceProvider, IEnumerable<BindPath> bindPaths, Intermediate intermediateRepresentation, string intermediateFolder, IEnumerable<Localization> localizations) 19 public Resolver(IServiceProvider serviceProvider)
20 { 20 {
21 this.ServiceProvider = serviceProvider; 21 this.ServiceProvider = serviceProvider;
22 this.BindPaths = bindPaths;
23 this.IntermediateRepresentation = intermediateRepresentation;
24 this.IntermediateFolder = intermediateFolder;
25 this.Localizations = localizations;
26
27 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
28 } 22 }
29 23
30 private IServiceProvider ServiceProvider { get; } 24 private IServiceProvider ServiceProvider { get; set; }
31 25
32 private IEnumerable<BindPath> BindPaths { get; } 26 public IEnumerable<BindPath> BindPaths { get; set; }
33 27
34 private Intermediate IntermediateRepresentation { get; } 28 public Intermediate IntermediateRepresentation { get; set; }
35 29
36 private string IntermediateFolder { get; } 30 public string IntermediateFolder { get; set; }
37 31
38 private IEnumerable<Localization> Localizations { get; } 32 public IEnumerable<Localization> Localizations { get; set; }
39 33
40 private IMessaging Messaging { get; } 34 private IMessaging Messaging { get; set; }
41 35
42 public ResolveResult Execute() 36 public ResolveResult Execute()
43 { 37 {
38 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
39
44 var localizer = new Localizer(this.Messaging, this.Localizations); 40 var localizer = new Localizer(this.Messaging, this.Localizations);
45 41
46 var variableResolver = new WixVariableResolver(this.Messaging, localizer); 42 var variableResolver = new WixVariableResolver(this.Messaging, localizer);
43 this.PopulateVariableResolver(variableResolver);
47 44
48 var context = this.ServiceProvider.GetService<IResolveContext>(); 45 var context = this.ServiceProvider.GetService<IResolveContext>();
49 context.Messaging = this.Messaging; 46 context.Messaging = this.Messaging;
@@ -51,7 +48,7 @@ namespace WixToolset.Core
51 context.Extensions = this.ServiceProvider.GetService<IExtensionManager>().Create<IResolverExtension>(); 48 context.Extensions = this.ServiceProvider.GetService<IExtensionManager>().Create<IResolverExtension>();
52 context.IntermediateFolder = this.IntermediateFolder; 49 context.IntermediateFolder = this.IntermediateFolder;
53 context.IntermediateRepresentation = this.IntermediateRepresentation; 50 context.IntermediateRepresentation = this.IntermediateRepresentation;
54 context.WixVariableResolver = this.PopulateVariableResolver(variableResolver); 51 context.WixVariableResolver = variableResolver;
55 52
56 // Preresolve. 53 // Preresolve.
57 // 54 //
@@ -212,7 +209,7 @@ namespace WixToolset.Core
212 } 209 }
213 } 210 }
214 211
215 private WixVariableResolver PopulateVariableResolver(WixVariableResolver resolver) 212 private void PopulateVariableResolver(WixVariableResolver resolver)
216 { 213 {
217 // Gather all the wix variables. 214 // Gather all the wix variables.
218 var wixVariableTuples = this.IntermediateRepresentation.Sections.SelectMany(s => s.Tuples).OfType<WixVariableTuple>(); 215 var wixVariableTuples = this.IntermediateRepresentation.Sections.SelectMany(s => s.Tuples).OfType<WixVariableTuple>();
@@ -227,8 +224,6 @@ namespace WixToolset.Core
227 this.Messaging.Write(ErrorMessages.WixVariableCollision(tuple.SourceLineNumbers, tuple.WixVariable)); 224 this.Messaging.Write(ErrorMessages.WixVariableCollision(tuple.SourceLineNumbers, tuple.WixVariable));
228 } 225 }
229 } 226 }
230
231 return resolver;
232 } 227 }
233 } 228 }
234} 229}