aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-03-14 11:20:54 -0700
committerRob Mensching <rob@firegiant.com>2021-03-14 11:32:08 -0700
commite8ebab2ce3991c3abb9942ce48a026a2169df01e (patch)
tree7a43209081067ee5b8379f2b1ca9bdbc4f7ee51f
parentdad79129d26cfb12f0d8894d9189334fa982b823 (diff)
downloadwix-e8ebab2ce3991c3abb9942ce48a026a2169df01e.tar.gz
wix-e8ebab2ce3991c3abb9942ce48a026a2169df01e.tar.bz2
wix-e8ebab2ce3991c3abb9942ce48a026a2169df01e.zip
Remove use of removed IWixToolsetServiceProvider
-rw-r--r--src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs2
-rw-r--r--src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs2
-rw-r--r--src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs2
-rw-r--r--src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs2
-rw-r--r--src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerCommand.cs2
-rw-r--r--src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionCommandLine.cs4
-rw-r--r--src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionFactory.cs4
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs2
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/CabinetResolver.cs4
-rw-r--r--src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs4
-rw-r--r--src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs2
-rw-r--r--src/WixToolset.Core/BindContext.cs6
-rw-r--r--src/WixToolset.Core/Binder.cs4
-rw-r--r--src/WixToolset.Core/CommandLine/BuildCommand.cs8
-rw-r--r--src/WixToolset.Core/CommandLine/CommandLine.cs4
-rw-r--r--src/WixToolset.Core/CommandLine/CommandLineArguments.cs2
-rw-r--r--src/WixToolset.Core/CommandLine/CommandLineContext.cs4
-rw-r--r--src/WixToolset.Core/CommandLine/CompileCommand.cs6
-rw-r--r--src/WixToolset.Core/CommandLine/DecompileCommand.cs4
-rw-r--r--src/WixToolset.Core/CompileContext.cs6
-rw-r--r--src/WixToolset.Core/Compiler.cs8
-rw-r--r--src/WixToolset.Core/DecompileContext.cs4
-rw-r--r--src/WixToolset.Core/Decompiler.cs4
-rw-r--r--src/WixToolset.Core/ExtensibilityServices/BackendHelper.cs2
-rw-r--r--src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs4
-rw-r--r--src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs12
-rw-r--r--src/WixToolset.Core/ExtensibilityServices/SymbolDefinitionCreator.cs4
-rw-r--r--src/WixToolset.Core/IncribeContext.cs4
-rw-r--r--src/WixToolset.Core/LayoutContext.cs6
-rw-r--r--src/WixToolset.Core/LayoutCreator.cs4
-rw-r--r--src/WixToolset.Core/Librarian.cs4
-rw-r--r--src/WixToolset.Core/LibraryContext.cs5
-rw-r--r--src/WixToolset.Core/LinkContext.cs5
-rw-r--r--src/WixToolset.Core/Linker.cs4
-rw-r--r--src/WixToolset.Core/LocalizationParser.cs2
-rw-r--r--src/WixToolset.Core/PreprocessContext.cs6
-rw-r--r--src/WixToolset.Core/Preprocessor.cs6
-rw-r--r--src/WixToolset.Core/ResolveContext.cs5
-rw-r--r--src/WixToolset.Core/Resolver.cs4
-rw-r--r--src/WixToolset.Core/UnbindContext.cs6
-rw-r--r--src/WixToolset.Core/Unbinder.cs5
-rw-r--r--src/WixToolset.Core/VariableResolver.cs4
-rw-r--r--src/WixToolset.Core/WixToolsetServiceProvider.cs23
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs1
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs1
45 files changed, 98 insertions, 109 deletions
diff --git a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
index 34c72346..7b5a3174 100644
--- a/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
+++ b/src/WixToolset.Core.Burn/Bind/BindBundleCommand.cs
@@ -45,7 +45,7 @@ namespace WixToolset.Core.Burn
45 this.BackendExtensions = backedExtensions; 45 this.BackendExtensions = backedExtensions;
46 } 46 }
47 47
48 private IWixToolsetServiceProvider ServiceProvider { get; } 48 private IServiceProvider ServiceProvider { get; }
49 49
50 private IMessaging Messaging { get; } 50 private IMessaging Messaging { get; }
51 51
diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
index dc1a1913..c8867eb7 100644
--- a/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
+++ b/src/WixToolset.Core.Burn/Bundles/ProcessMsiPackageCommand.cs
@@ -23,7 +23,7 @@ namespace WixToolset.Core.Burn.Bundles
23 { 23 {
24 private const string PropertySqlFormat = "SELECT `Value` FROM `Property` WHERE `Property` = '{0}'"; 24 private const string PropertySqlFormat = "SELECT `Value` FROM `Property` WHERE `Property` = '{0}'";
25 25
26 public ProcessMsiPackageCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable<IBurnBackendBinderExtension> backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary<string, WixBundlePayloadSymbol> payloadSymbols) 26 public ProcessMsiPackageCommand(IServiceProvider serviceProvider, IEnumerable<IBurnBackendBinderExtension> backendExtensions, IntermediateSection section, PackageFacade facade, Dictionary<string, WixBundlePayloadSymbol> payloadSymbols)
27 { 27 {
28 this.Messaging = serviceProvider.GetService<IMessaging>(); 28 this.Messaging = serviceProvider.GetService<IMessaging>();
29 this.BackendHelper = serviceProvider.GetService<IBackendHelper>(); 29 this.BackendHelper = serviceProvider.GetService<IBackendHelper>();
diff --git a/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs b/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs
index dea5b336..adbb41b1 100644
--- a/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs
+++ b/src/WixToolset.Core.Burn/Bundles/ProcessPayloadsCommand.cs
@@ -15,7 +15,7 @@ namespace WixToolset.Core.Burn.Bundles
15 15
16 internal class ProcessPayloadsCommand 16 internal class ProcessPayloadsCommand
17 { 17 {
18 public ProcessPayloadsCommand(IWixToolsetServiceProvider serviceProvider, IBackendHelper backendHelper, IPayloadHarvester payloadHarvester, IEnumerable<WixBundlePayloadSymbol> payloads, PackagingType defaultPackaging, string layoutDirectory) 18 public ProcessPayloadsCommand(IServiceProvider serviceProvider, IBackendHelper backendHelper, IPayloadHarvester payloadHarvester, IEnumerable<WixBundlePayloadSymbol> payloads, PackagingType defaultPackaging, string layoutDirectory)
19 { 19 {
20 this.Messaging = serviceProvider.GetService<IMessaging>(); 20 this.Messaging = serviceProvider.GetService<IMessaging>();
21 21
diff --git a/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs b/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs
index 5502b43b..a4f37d10 100644
--- a/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs
+++ b/src/WixToolset.Core.Burn/ExtensibilityServices/BurnBackendHelper.cs
@@ -25,7 +25,7 @@ namespace WixToolset.Core.Burn.ExtensibilityServices
25 25
26 private Dictionary<string, ManifestData> BundleExtensionDataById { get; } = new Dictionary<string, ManifestData>(); 26 private Dictionary<string, ManifestData> BundleExtensionDataById { get; } = new Dictionary<string, ManifestData>();
27 27
28 public BurnBackendHelper(IWixToolsetServiceProvider serviceProvider) 28 public BurnBackendHelper(IServiceProvider serviceProvider)
29 { 29 {
30 this.backendHelper = serviceProvider.GetService<IBackendHelper>(); 30 this.backendHelper = serviceProvider.GetService<IBackendHelper>();
31 } 31 }
diff --git a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerCommand.cs b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerCommand.cs
index 67c1504b..94ee4f22 100644
--- a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerCommand.cs
+++ b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerCommand.cs
@@ -22,7 +22,7 @@ namespace WixToolset.Core.ExtensionCache
22 List 22 List
23 } 23 }
24 24
25 public ExtensionCacheManagerCommand(IWixToolsetServiceProvider serviceProvider) 25 public ExtensionCacheManagerCommand(IServiceProvider serviceProvider)
26 { 26 {
27 this.Messaging = serviceProvider.GetService<IMessaging>(); 27 this.Messaging = serviceProvider.GetService<IMessaging>();
28 this.ExtensionReferences = new List<string>(); 28 this.ExtensionReferences = new List<string>();
diff --git a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionCommandLine.cs b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionCommandLine.cs
index a27e2a1f..76587830 100644
--- a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionCommandLine.cs
+++ b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionCommandLine.cs
@@ -14,12 +14,12 @@ namespace WixToolset.Core.ExtensionCache
14 /// </summary> 14 /// </summary>
15 internal class ExtensionCacheManagerExtensionCommandLine : BaseExtensionCommandLine 15 internal class ExtensionCacheManagerExtensionCommandLine : BaseExtensionCommandLine
16 { 16 {
17 public ExtensionCacheManagerExtensionCommandLine(IWixToolsetServiceProvider serviceProvider) 17 public ExtensionCacheManagerExtensionCommandLine(IServiceProvider serviceProvider)
18 { 18 {
19 this.ServiceProvider = serviceProvider; 19 this.ServiceProvider = serviceProvider;
20 } 20 }
21 21
22 private IWixToolsetServiceProvider ServiceProvider { get; } 22 private IServiceProvider ServiceProvider { get; }
23 23
24 public override IEnumerable<ExtensionCommandLineSwitch> CommandLineSwitches => new ExtensionCommandLineSwitch[] 24 public override IEnumerable<ExtensionCommandLineSwitch> CommandLineSwitches => new ExtensionCommandLineSwitch[]
25 { 25 {
diff --git a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionFactory.cs b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionFactory.cs
index 44fc4b86..c38e5c70 100644
--- a/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionFactory.cs
+++ b/src/WixToolset.Core.ExtensionCache/ExtensionCacheManagerExtensionFactory.cs
@@ -8,12 +8,12 @@ namespace WixToolset.Core.ExtensionCache
8 8
9 internal class ExtensionCacheManagerExtensionFactory : IExtensionFactory 9 internal class ExtensionCacheManagerExtensionFactory : IExtensionFactory
10 { 10 {
11 public ExtensionCacheManagerExtensionFactory(IWixToolsetServiceProvider serviceProvider) 11 public ExtensionCacheManagerExtensionFactory(IServiceProvider serviceProvider)
12 { 12 {
13 this.ServiceProvider = serviceProvider; 13 this.ServiceProvider = serviceProvider;
14 } 14 }
15 15
16 private IWixToolsetServiceProvider ServiceProvider { get; } 16 private IServiceProvider ServiceProvider { get; }
17 17
18 public bool TryCreateExtension(Type extensionType, out object extension) 18 public bool TryCreateExtension(Type extensionType, out object extension)
19 { 19 {
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
index b6244a6e..df1c824a 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/BindDatabaseCommand.cs
@@ -55,7 +55,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
55 this.BackendExtensions = backendExtension; 55 this.BackendExtensions = backendExtension;
56 } 56 }
57 57
58 public IWixToolsetServiceProvider ServiceProvider { get; } 58 public IServiceProvider ServiceProvider { get; }
59 59
60 private IMessaging Messaging { get; } 60 private IMessaging Messaging { get; }
61 61
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CabinetResolver.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CabinetResolver.cs
index e47e5b64..875b46c2 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/CabinetResolver.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/CabinetResolver.cs
@@ -14,7 +14,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
14 14
15 internal class CabinetResolver 15 internal class CabinetResolver
16 { 16 {
17 public CabinetResolver(IWixToolsetServiceProvider serviceProvider, string cabCachePath, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions) 17 public CabinetResolver(IServiceProvider serviceProvider, string cabCachePath, IEnumerable<IWindowsInstallerBackendBinderExtension> backendExtensions)
18 { 18 {
19 this.ServiceProvider = serviceProvider; 19 this.ServiceProvider = serviceProvider;
20 20
@@ -23,7 +23,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
23 this.BackendExtensions = backendExtensions; 23 this.BackendExtensions = backendExtensions;
24 } 24 }
25 25
26 private IWixToolsetServiceProvider ServiceProvider { get; } 26 private IServiceProvider ServiceProvider { get; }
27 27
28 private string CabCachePath { get; } 28 private string CabCachePath { get; }
29 29
diff --git a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs
index 43afd718..d4faabeb 100644
--- a/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs
+++ b/src/WixToolset.Core.WindowsInstaller/Bind/CreateCabinetsCommand.cs
@@ -31,7 +31,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
31 31
32 private Dictionary<string, string> lastCabinetAddedToMediaTable; // Key is First Cabinet Name, Value is Last Cabinet Added in the Split Sequence 32 private Dictionary<string, string> lastCabinetAddedToMediaTable; // Key is First Cabinet Name, Value is Last Cabinet Added in the Split Sequence
33 33
34 public CreateCabinetsCommand(IWixToolsetServiceProvider serviceProvider, IBackendHelper backendHelper, WixMediaTemplateSymbol mediaTemplate) 34 public CreateCabinetsCommand(IServiceProvider serviceProvider, IBackendHelper backendHelper, WixMediaTemplateSymbol mediaTemplate)
35 { 35 {
36 this.fileTransfers = new List<IFileTransfer>(); 36 this.fileTransfers = new List<IFileTransfer>();
37 37
@@ -46,7 +46,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
46 this.MediaTemplate = mediaTemplate; 46 this.MediaTemplate = mediaTemplate;
47 } 47 }
48 48
49 private IWixToolsetServiceProvider ServiceProvider { get; } 49 private IServiceProvider ServiceProvider { get; }
50 50
51 private IBackendHelper BackendHelper { get; } 51 private IBackendHelper BackendHelper { get; }
52 52
diff --git a/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs b/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs
index 18060ca7..ca1cd0e3 100644
--- a/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs
+++ b/src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs
@@ -16,7 +16,7 @@ namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices
16 { 16 {
17 private readonly IBackendHelper backendHelper; 17 private readonly IBackendHelper backendHelper;
18 18
19 public WindowsInstallerBackendHelper(IWixToolsetServiceProvider serviceProvider) 19 public WindowsInstallerBackendHelper(IServiceProvider serviceProvider)
20 { 20 {
21 this.backendHelper = serviceProvider.GetService<IBackendHelper>(); 21 this.backendHelper = serviceProvider.GetService<IBackendHelper>();
22 } 22 }
diff --git a/src/WixToolset.Core/BindContext.cs b/src/WixToolset.Core/BindContext.cs
index 47375fb0..6b0a09a2 100644
--- a/src/WixToolset.Core/BindContext.cs
+++ b/src/WixToolset.Core/BindContext.cs
@@ -2,21 +2,21 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Data; 8 using WixToolset.Data;
8 using WixToolset.Extensibility; 9 using WixToolset.Extensibility;
9 using WixToolset.Extensibility.Data; 10 using WixToolset.Extensibility.Data;
10 using WixToolset.Extensibility.Services;
11 11
12 internal class BindContext : IBindContext 12 internal class BindContext : IBindContext
13 { 13 {
14 internal BindContext(IWixToolsetServiceProvider serviceProvider) 14 internal BindContext(IServiceProvider serviceProvider)
15 { 15 {
16 this.ServiceProvider = serviceProvider; 16 this.ServiceProvider = serviceProvider;
17 } 17 }
18 18
19 public IWixToolsetServiceProvider ServiceProvider { get; } 19 public IServiceProvider ServiceProvider { get; }
20 20
21 public IEnumerable<BindPath> BindPaths { get; set; } 21 public IEnumerable<BindPath> BindPaths { get; set; }
22 22
diff --git a/src/WixToolset.Core/Binder.cs b/src/WixToolset.Core/Binder.cs
index faaa3ec0..090b5d32 100644
--- a/src/WixToolset.Core/Binder.cs
+++ b/src/WixToolset.Core/Binder.cs
@@ -17,12 +17,12 @@ namespace WixToolset.Core
17 /// </summary> 17 /// </summary>
18 internal class Binder : IBinder 18 internal class Binder : IBinder
19 { 19 {
20 internal Binder(IWixToolsetServiceProvider serviceProvider) 20 internal Binder(IServiceProvider serviceProvider)
21 { 21 {
22 this.ServiceProvider = serviceProvider; 22 this.ServiceProvider = serviceProvider;
23 } 23 }
24 24
25 public IWixToolsetServiceProvider ServiceProvider { get; } 25 public IServiceProvider ServiceProvider { get; }
26 26
27 public IBindResult Bind(IBindContext context) 27 public IBindResult Bind(IBindContext context)
28 { 28 {
diff --git a/src/WixToolset.Core/CommandLine/BuildCommand.cs b/src/WixToolset.Core/CommandLine/BuildCommand.cs
index b687e07b..baca91ba 100644
--- a/src/WixToolset.Core/CommandLine/BuildCommand.cs
+++ b/src/WixToolset.Core/CommandLine/BuildCommand.cs
@@ -18,7 +18,7 @@ namespace WixToolset.Core.CommandLine
18 { 18 {
19 private readonly CommandLine commandLine; 19 private readonly CommandLine commandLine;
20 20
21 public BuildCommand(IWixToolsetServiceProvider serviceProvider) 21 public BuildCommand(IServiceProvider serviceProvider)
22 { 22 {
23 this.ServiceProvider = serviceProvider; 23 this.ServiceProvider = serviceProvider;
24 this.Messaging = serviceProvider.GetService<IMessaging>(); 24 this.Messaging = serviceProvider.GetService<IMessaging>();
@@ -30,7 +30,7 @@ namespace WixToolset.Core.CommandLine
30 30
31 public bool StopParsing => this.commandLine.ShowHelp; 31 public bool StopParsing => this.commandLine.ShowHelp;
32 32
33 private IWixToolsetServiceProvider ServiceProvider { get; } 33 private IServiceProvider ServiceProvider { get; }
34 34
35 private IMessaging Messaging { get; } 35 private IMessaging Messaging { get; }
36 36
@@ -541,13 +541,13 @@ namespace WixToolset.Core.CommandLine
541 541
542 public string BuiltOutputsFile { get; private set; } 542 public string BuiltOutputsFile { get; private set; }
543 543
544 public CommandLine(IWixToolsetServiceProvider serviceProvider, IMessaging messaging) 544 public CommandLine(IServiceProvider serviceProvider, IMessaging messaging)
545 { 545 {
546 this.ServiceProvider = serviceProvider; 546 this.ServiceProvider = serviceProvider;
547 this.Messaging = messaging; 547 this.Messaging = messaging;
548 } 548 }
549 549
550 private IWixToolsetServiceProvider ServiceProvider { get; } 550 private IServiceProvider ServiceProvider { get; }
551 551
552 private IMessaging Messaging { get; } 552 private IMessaging Messaging { get; }
553 553
diff --git a/src/WixToolset.Core/CommandLine/CommandLine.cs b/src/WixToolset.Core/CommandLine/CommandLine.cs
index 7371628b..b87b6a5d 100644
--- a/src/WixToolset.Core/CommandLine/CommandLine.cs
+++ b/src/WixToolset.Core/CommandLine/CommandLine.cs
@@ -21,9 +21,9 @@ namespace WixToolset.Core.CommandLine
21 21
22 internal class CommandLine : ICommandLine 22 internal class CommandLine : ICommandLine
23 { 23 {
24 public CommandLine(IWixToolsetServiceProvider serviceProvider) => this.ServiceProvider = serviceProvider; 24 public CommandLine(IServiceProvider serviceProvider) => this.ServiceProvider = serviceProvider;
25 25
26 private IWixToolsetServiceProvider ServiceProvider { get; } 26 private IServiceProvider ServiceProvider { get; }
27 27
28 public ICommandLineCommand CreateCommand(string[] args) 28 public ICommandLineCommand CreateCommand(string[] args)
29 { 29 {
diff --git a/src/WixToolset.Core/CommandLine/CommandLineArguments.cs b/src/WixToolset.Core/CommandLine/CommandLineArguments.cs
index 456e19d7..40b8b320 100644
--- a/src/WixToolset.Core/CommandLine/CommandLineArguments.cs
+++ b/src/WixToolset.Core/CommandLine/CommandLineArguments.cs
@@ -12,7 +12,7 @@ namespace WixToolset.Core.CommandLine
12 12
13 internal class CommandLineArguments : ICommandLineArguments 13 internal class CommandLineArguments : ICommandLineArguments
14 { 14 {
15 public CommandLineArguments(IWixToolsetServiceProvider serviceProvider) 15 public CommandLineArguments(IServiceProvider serviceProvider)
16 { 16 {
17 this.Messaging = serviceProvider.GetService<IMessaging>(); 17 this.Messaging = serviceProvider.GetService<IMessaging>();
18 } 18 }
diff --git a/src/WixToolset.Core/CommandLine/CommandLineContext.cs b/src/WixToolset.Core/CommandLine/CommandLineContext.cs
index 6bf05590..8d5cf120 100644
--- a/src/WixToolset.Core/CommandLine/CommandLineContext.cs
+++ b/src/WixToolset.Core/CommandLine/CommandLineContext.cs
@@ -8,12 +8,12 @@ namespace WixToolset.Core.CommandLine
8 8
9 internal class CommandLineContext : ICommandLineContext 9 internal class CommandLineContext : ICommandLineContext
10 { 10 {
11 public CommandLineContext(IWixToolsetServiceProvider serviceProvider) 11 public CommandLineContext(IServiceProvider serviceProvider)
12 { 12 {
13 this.ServiceProvider = serviceProvider; 13 this.ServiceProvider = serviceProvider;
14 } 14 }
15 15
16 public IWixToolsetServiceProvider ServiceProvider { get; } 16 public IServiceProvider ServiceProvider { get; }
17 17
18 public IExtensionManager ExtensionManager { get; set; } 18 public IExtensionManager ExtensionManager { get; set; }
19 19
diff --git a/src/WixToolset.Core/CommandLine/CompileCommand.cs b/src/WixToolset.Core/CommandLine/CompileCommand.cs
index f6f9c623..54d1b6f1 100644
--- a/src/WixToolset.Core/CommandLine/CompileCommand.cs
+++ b/src/WixToolset.Core/CommandLine/CompileCommand.cs
@@ -13,14 +13,14 @@ namespace WixToolset.Core.CommandLine
13 13
14 internal class CompileCommand : ICommandLineCommand 14 internal class CompileCommand : ICommandLineCommand
15 { 15 {
16 public CompileCommand(IWixToolsetServiceProvider serviceProvider) 16 public CompileCommand(IServiceProvider serviceProvider)
17 { 17 {
18 this.ServiceProvider = serviceProvider; 18 this.ServiceProvider = serviceProvider;
19 this.Messaging = serviceProvider.GetService<IMessaging>(); 19 this.Messaging = serviceProvider.GetService<IMessaging>();
20 this.ExtensionManager = serviceProvider.GetService<IExtensionManager>(); 20 this.ExtensionManager = serviceProvider.GetService<IExtensionManager>();
21 } 21 }
22 22
23 public CompileCommand(IWixToolsetServiceProvider serviceProvider, IEnumerable<SourceFile> sources, IDictionary<string, string> preprocessorVariables, Platform platform) 23 public CompileCommand(IServiceProvider serviceProvider, IEnumerable<SourceFile> sources, IDictionary<string, string> preprocessorVariables, Platform platform)
24 { 24 {
25 this.ServiceProvider = serviceProvider; 25 this.ServiceProvider = serviceProvider;
26 this.Messaging = serviceProvider.GetService<IMessaging>(); 26 this.Messaging = serviceProvider.GetService<IMessaging>();
@@ -30,7 +30,7 @@ namespace WixToolset.Core.CommandLine
30 this.Platform = platform; 30 this.Platform = platform;
31 } 31 }
32 32
33 private IWixToolsetServiceProvider ServiceProvider { get; } 33 private IServiceProvider ServiceProvider { get; }
34 34
35 public IMessaging Messaging { get; } 35 public IMessaging Messaging { get; }
36 36
diff --git a/src/WixToolset.Core/CommandLine/DecompileCommand.cs b/src/WixToolset.Core/CommandLine/DecompileCommand.cs
index 53d0c309..fc0ab0c9 100644
--- a/src/WixToolset.Core/CommandLine/DecompileCommand.cs
+++ b/src/WixToolset.Core/CommandLine/DecompileCommand.cs
@@ -16,7 +16,7 @@ namespace WixToolset.Core.CommandLine
16 { 16 {
17 private readonly CommandLine commandLine; 17 private readonly CommandLine commandLine;
18 18
19 public DecompileCommand(IWixToolsetServiceProvider serviceProvider) 19 public DecompileCommand(IServiceProvider serviceProvider)
20 { 20 {
21 this.ServiceProvider = serviceProvider; 21 this.ServiceProvider = serviceProvider;
22 this.Messaging = serviceProvider.GetService<IMessaging>(); 22 this.Messaging = serviceProvider.GetService<IMessaging>();
@@ -27,7 +27,7 @@ namespace WixToolset.Core.CommandLine
27 27
28 public bool StopParsing => this.commandLine.ShowHelp; 28 public bool StopParsing => this.commandLine.ShowHelp;
29 29
30 private IWixToolsetServiceProvider ServiceProvider { get; } 30 private IServiceProvider ServiceProvider { get; }
31 31
32 public IMessaging Messaging { get; } 32 public IMessaging Messaging { get; }
33 33
diff --git a/src/WixToolset.Core/CompileContext.cs b/src/WixToolset.Core/CompileContext.cs
index e781b692..2aeb3998 100644
--- a/src/WixToolset.Core/CompileContext.cs
+++ b/src/WixToolset.Core/CompileContext.cs
@@ -2,22 +2,22 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using System.Xml.Linq; 8 using System.Xml.Linq;
8 using WixToolset.Data; 9 using WixToolset.Data;
9 using WixToolset.Extensibility; 10 using WixToolset.Extensibility;
10 using WixToolset.Extensibility.Data; 11 using WixToolset.Extensibility.Data;
11 using WixToolset.Extensibility.Services;
12 12
13 internal class CompileContext : ICompileContext 13 internal class CompileContext : ICompileContext
14 { 14 {
15 internal CompileContext(IWixToolsetServiceProvider serviceProvider) 15 internal CompileContext(IServiceProvider serviceProvider)
16 { 16 {
17 this.ServiceProvider = serviceProvider; 17 this.ServiceProvider = serviceProvider;
18 } 18 }
19 19
20 public IWixToolsetServiceProvider ServiceProvider { get; } 20 public IServiceProvider ServiceProvider { get; }
21 21
22 public string CompilationId { get; set; } 22 public string CompilationId { get; set; }
23 23
diff --git a/src/WixToolset.Core/Compiler.cs b/src/WixToolset.Core/Compiler.cs
index 2aa25141..22f0df8f 100644
--- a/src/WixToolset.Core/Compiler.cs
+++ b/src/WixToolset.Core/Compiler.cs
@@ -57,7 +57,7 @@ namespace WixToolset.Core
57 Icon, 57 Icon,
58 } 58 }
59 59
60 internal Compiler(IWixToolsetServiceProvider serviceProvider) 60 internal Compiler(IServiceProvider serviceProvider)
61 { 61 {
62 this.Messaging = serviceProvider.GetService<IMessaging>(); 62 this.Messaging = serviceProvider.GetService<IMessaging>();
63 } 63 }
@@ -4298,9 +4298,9 @@ namespace WixToolset.Core
4298 } 4298 }
4299 } 4299 }
4300 else if ("TARGETDIR".Equals(id.Id, StringComparison.Ordinal) && !("SourceDir".Equals(name, StringComparison.Ordinal) && shortName == null && shortSourceName == null && sourceName == null)) 4300 else if ("TARGETDIR".Equals(id.Id, StringComparison.Ordinal) && !("SourceDir".Equals(name, StringComparison.Ordinal) && shortName == null && shortSourceName == null && sourceName == null))
4301 { 4301 {
4302 this.Core.Write(ErrorMessages.IllegalTargetDirDefaultDir(sourceLineNumbers, name)); 4302 this.Core.Write(ErrorMessages.IllegalTargetDirDefaultDir(sourceLineNumbers, name));
4303 } 4303 }
4304 4304
4305 // Update the file source path appropriately. 4305 // Update the file source path appropriately.
4306 if (fileSourceAttribSet) 4306 if (fileSourceAttribSet)
diff --git a/src/WixToolset.Core/DecompileContext.cs b/src/WixToolset.Core/DecompileContext.cs
index fb59cd08..056785d6 100644
--- a/src/WixToolset.Core/DecompileContext.cs
+++ b/src/WixToolset.Core/DecompileContext.cs
@@ -11,12 +11,12 @@ namespace WixToolset.Core
11 11
12 internal class DecompileContext : IDecompileContext 12 internal class DecompileContext : IDecompileContext
13 { 13 {
14 internal DecompileContext(IWixToolsetServiceProvider serviceProvider) 14 internal DecompileContext(IServiceProvider serviceProvider)
15 { 15 {
16 this.ServiceProvider = serviceProvider; 16 this.ServiceProvider = serviceProvider;
17 } 17 }
18 18
19 public IWixToolsetServiceProvider ServiceProvider { get; } 19 public IServiceProvider ServiceProvider { get; }
20 20
21 public string DecompilePath { get; set; } 21 public string DecompilePath { get; set; }
22 22
diff --git a/src/WixToolset.Core/Decompiler.cs b/src/WixToolset.Core/Decompiler.cs
index e146362f..859f582b 100644
--- a/src/WixToolset.Core/Decompiler.cs
+++ b/src/WixToolset.Core/Decompiler.cs
@@ -12,12 +12,12 @@ namespace WixToolset.Core
12 /// </summary> 12 /// </summary>
13 internal class Decompiler : IDecompiler 13 internal class Decompiler : IDecompiler
14 { 14 {
15 internal Decompiler(IWixToolsetServiceProvider serviceProvider) 15 internal Decompiler(IServiceProvider serviceProvider)
16 { 16 {
17 this.ServiceProvider = serviceProvider; 17 this.ServiceProvider = serviceProvider;
18 } 18 }
19 19
20 public IWixToolsetServiceProvider ServiceProvider { get; } 20 public IServiceProvider ServiceProvider { get; }
21 21
22 public IDecompileResult Decompile(IDecompileContext context) 22 public IDecompileResult Decompile(IDecompileContext context)
23 { 23 {
diff --git a/src/WixToolset.Core/ExtensibilityServices/BackendHelper.cs b/src/WixToolset.Core/ExtensibilityServices/BackendHelper.cs
index 3dcc0ce9..539cec78 100644
--- a/src/WixToolset.Core/ExtensibilityServices/BackendHelper.cs
+++ b/src/WixToolset.Core/ExtensibilityServices/BackendHelper.cs
@@ -16,7 +16,7 @@ namespace WixToolset.Core.ExtensibilityServices
16 { 16 {
17 private static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" }; 17 private static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" };
18 18
19 public BackendHelper(IWixToolsetServiceProvider serviceProvider) 19 public BackendHelper(IServiceProvider serviceProvider)
20 { 20 {
21 this.Messaging = serviceProvider.GetService<IMessaging>(); 21 this.Messaging = serviceProvider.GetService<IMessaging>();
22 } 22 }
diff --git a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs
index 3c040b35..8e9f48c4 100644
--- a/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs
+++ b/src/WixToolset.Core/ExtensibilityServices/ParseHelper.cs
@@ -18,14 +18,14 @@ namespace WixToolset.Core.ExtensibilityServices
18 { 18 {
19 private static readonly char[] InlineDirectorySeparators = new char[] { ':', '\\', '/' }; 19 private static readonly char[] InlineDirectorySeparators = new char[] { ':', '\\', '/' };
20 20
21 public ParseHelper(IWixToolsetServiceProvider serviceProvider) 21 public ParseHelper(IServiceProvider serviceProvider)
22 { 22 {
23 this.ServiceProvider = serviceProvider; 23 this.ServiceProvider = serviceProvider;
24 24
25 this.Messaging = serviceProvider.GetService<IMessaging>(); 25 this.Messaging = serviceProvider.GetService<IMessaging>();
26 } 26 }
27 27
28 private IWixToolsetServiceProvider ServiceProvider { get; } 28 private IServiceProvider ServiceProvider { get; }
29 29
30 private IMessaging Messaging { get; } 30 private IMessaging Messaging { get; }
31 31
diff --git a/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs b/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
index 041c7d5d..b0c87bcf 100644
--- a/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
+++ b/src/WixToolset.Core/ExtensibilityServices/PreprocessHelper.cs
@@ -17,14 +17,14 @@ namespace WixToolset.Core.ExtensibilityServices
17 private static readonly char[] VariableSplitter = new char[] { '.' }; 17 private static readonly char[] VariableSplitter = new char[] { '.' };
18 private static readonly char[] ArgumentSplitter = new char[] { ',' }; 18 private static readonly char[] ArgumentSplitter = new char[] { ',' };
19 19
20 public PreprocessHelper(IWixToolsetServiceProvider serviceProvider) 20 public PreprocessHelper(IServiceProvider serviceProvider)
21 { 21 {
22 this.ServiceProvider = serviceProvider; 22 this.ServiceProvider = serviceProvider;
23 23
24 this.Messaging = this.ServiceProvider.GetService<IMessaging>(); 24 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
25 } 25 }
26 26
27 private IWixToolsetServiceProvider ServiceProvider { get; } 27 private IServiceProvider ServiceProvider { get; }
28 28
29 private IMessaging Messaging { get; } 29 private IMessaging Messaging { get; }
30 30
@@ -133,7 +133,7 @@ namespace WixToolset.Core.ExtensibilityServices
133 } 133 }
134 134
135 default: 135 default:
136 var extensionsByPrefix = this.GetExtensionsByPrefix(context); 136 var extensionsByPrefix = this.GetExtensionsByPrefix();
137 if (extensionsByPrefix.TryGetValue(prefix, out var extension)) 137 if (extensionsByPrefix.TryGetValue(prefix, out var extension))
138 { 138 {
139 try 139 try
@@ -259,7 +259,7 @@ namespace WixToolset.Core.ExtensibilityServices
259 return context.Variables.TryGetValue(name, out var result) ? result : null; 259 return context.Variables.TryGetValue(name, out var result) ? result : null;
260 260
261 default: 261 default:
262 var extensionsByPrefix = this.GetExtensionsByPrefix(context); 262 var extensionsByPrefix = this.GetExtensionsByPrefix();
263 if (extensionsByPrefix.TryGetValue(prefix, out var extension)) 263 if (extensionsByPrefix.TryGetValue(prefix, out var extension))
264 { 264 {
265 try 265 try
@@ -309,7 +309,7 @@ namespace WixToolset.Core.ExtensibilityServices
309 break; 309 break;
310 310
311 default: 311 default:
312 var extensionsByPrefix = this.GetExtensionsByPrefix(context); 312 var extensionsByPrefix = this.GetExtensionsByPrefix();
313 if (extensionsByPrefix.TryGetValue(prefix, out var extension)) 313 if (extensionsByPrefix.TryGetValue(prefix, out var extension))
314 { 314 {
315 if (!extension.ProcessPragma(prefix, pragma, args, parent)) 315 if (!extension.ProcessPragma(prefix, pragma, args, parent))
@@ -468,7 +468,7 @@ namespace WixToolset.Core.ExtensibilityServices
468 } 468 }
469 } 469 }
470 470
471 private Dictionary<string, IPreprocessorExtension> GetExtensionsByPrefix(IPreprocessContext context) 471 private Dictionary<string, IPreprocessorExtension> GetExtensionsByPrefix()
472 { 472 {
473 if (this.ExtensionsByPrefix == null) 473 if (this.ExtensionsByPrefix == null)
474 { 474 {
diff --git a/src/WixToolset.Core/ExtensibilityServices/SymbolDefinitionCreator.cs b/src/WixToolset.Core/ExtensibilityServices/SymbolDefinitionCreator.cs
index 2bff21d6..a2486130 100644
--- a/src/WixToolset.Core/ExtensibilityServices/SymbolDefinitionCreator.cs
+++ b/src/WixToolset.Core/ExtensibilityServices/SymbolDefinitionCreator.cs
@@ -10,12 +10,12 @@ namespace WixToolset.Core.ExtensibilityServices
10 10
11 internal class SymbolDefinitionCreator : ISymbolDefinitionCreator 11 internal class SymbolDefinitionCreator : ISymbolDefinitionCreator
12 { 12 {
13 public SymbolDefinitionCreator(IWixToolsetServiceProvider serviceProvider) 13 public SymbolDefinitionCreator(IServiceProvider serviceProvider)
14 { 14 {
15 this.ServiceProvider = serviceProvider; 15 this.ServiceProvider = serviceProvider;
16 } 16 }
17 17
18 private IWixToolsetServiceProvider ServiceProvider { get; } 18 private IServiceProvider ServiceProvider { get; }
19 19
20 private IEnumerable<IExtensionData> ExtensionData { get; set; } 20 private IEnumerable<IExtensionData> ExtensionData { get; set; }
21 21
diff --git a/src/WixToolset.Core/IncribeContext.cs b/src/WixToolset.Core/IncribeContext.cs
index 8db4daef..9d7055ab 100644
--- a/src/WixToolset.Core/IncribeContext.cs
+++ b/src/WixToolset.Core/IncribeContext.cs
@@ -8,12 +8,12 @@ namespace WixToolset.Core
8 8
9 internal class InscribeContext : IInscribeContext 9 internal class InscribeContext : IInscribeContext
10 { 10 {
11 public InscribeContext(IWixToolsetServiceProvider serviceProvider) 11 public InscribeContext(IServiceProvider serviceProvider)
12 { 12 {
13 this.ServiceProvider = serviceProvider; 13 this.ServiceProvider = serviceProvider;
14 } 14 }
15 15
16 public IWixToolsetServiceProvider ServiceProvider { get; } 16 public IServiceProvider ServiceProvider { get; }
17 17
18 public string IntermediateFolder { get; set; } 18 public string IntermediateFolder { get; set; }
19 19
diff --git a/src/WixToolset.Core/LayoutContext.cs b/src/WixToolset.Core/LayoutContext.cs
index 7bbae0c0..e4c8db7c 100644
--- a/src/WixToolset.Core/LayoutContext.cs
+++ b/src/WixToolset.Core/LayoutContext.cs
@@ -2,20 +2,20 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Extensibility; 8 using WixToolset.Extensibility;
8 using WixToolset.Extensibility.Data; 9 using WixToolset.Extensibility.Data;
9 using WixToolset.Extensibility.Services;
10 10
11 internal class LayoutContext : ILayoutContext 11 internal class LayoutContext : ILayoutContext
12 { 12 {
13 internal LayoutContext(IWixToolsetServiceProvider serviceProvider) 13 internal LayoutContext(IServiceProvider serviceProvider)
14 { 14 {
15 this.ServiceProvider = serviceProvider; 15 this.ServiceProvider = serviceProvider;
16 } 16 }
17 17
18 public IWixToolsetServiceProvider ServiceProvider { get; } 18 public IServiceProvider ServiceProvider { get; }
19 19
20 public IEnumerable<ILayoutExtension> Extensions { get; set; } 20 public IEnumerable<ILayoutExtension> Extensions { get; set; }
21 21
diff --git a/src/WixToolset.Core/LayoutCreator.cs b/src/WixToolset.Core/LayoutCreator.cs
index 0da18ab5..b31c4e16 100644
--- a/src/WixToolset.Core/LayoutCreator.cs
+++ b/src/WixToolset.Core/LayoutCreator.cs
@@ -16,14 +16,14 @@ namespace WixToolset.Core
16 /// </summary> 16 /// </summary>
17 internal class LayoutCreator : ILayoutCreator 17 internal class LayoutCreator : ILayoutCreator
18 { 18 {
19 internal LayoutCreator(IWixToolsetServiceProvider serviceProvider) 19 internal LayoutCreator(IServiceProvider serviceProvider)
20 { 20 {
21 this.ServiceProvider = serviceProvider; 21 this.ServiceProvider = serviceProvider;
22 22
23 this.Messaging = serviceProvider.GetService<IMessaging>(); 23 this.Messaging = serviceProvider.GetService<IMessaging>();
24 } 24 }
25 25
26 private IWixToolsetServiceProvider ServiceProvider { get; } 26 private IServiceProvider ServiceProvider { get; }
27 27
28 private IMessaging Messaging { get; } 28 private IMessaging Messaging { get; }
29 29
diff --git a/src/WixToolset.Core/Librarian.cs b/src/WixToolset.Core/Librarian.cs
index 6dc8611d..059a478b 100644
--- a/src/WixToolset.Core/Librarian.cs
+++ b/src/WixToolset.Core/Librarian.cs
@@ -16,14 +16,14 @@ namespace WixToolset.Core
16 /// </summary> 16 /// </summary>
17 internal class Librarian : ILibrarian 17 internal class Librarian : ILibrarian
18 { 18 {
19 internal Librarian(IWixToolsetServiceProvider serviceProvider) 19 internal Librarian(IServiceProvider serviceProvider)
20 { 20 {
21 this.ServiceProvider = serviceProvider; 21 this.ServiceProvider = serviceProvider;
22 22
23 this.Messaging = this.ServiceProvider.GetService<IMessaging>(); 23 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
24 } 24 }
25 25
26 private IWixToolsetServiceProvider ServiceProvider { get; } 26 private IServiceProvider ServiceProvider { get; }
27 27
28 private IMessaging Messaging { get; } 28 private IMessaging Messaging { get; }
29 29
diff --git a/src/WixToolset.Core/LibraryContext.cs b/src/WixToolset.Core/LibraryContext.cs
index 9fd76cf5..62d4e70c 100644
--- a/src/WixToolset.Core/LibraryContext.cs
+++ b/src/WixToolset.Core/LibraryContext.cs
@@ -2,6 +2,7 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Data; 8 using WixToolset.Data;
@@ -11,12 +12,12 @@ namespace WixToolset.Core
11 12
12 internal class LibraryContext : ILibraryContext 13 internal class LibraryContext : ILibraryContext
13 { 14 {
14 internal LibraryContext(IWixToolsetServiceProvider serviceProvider) 15 internal LibraryContext(IServiceProvider serviceProvider)
15 { 16 {
16 this.ServiceProvider = serviceProvider; 17 this.ServiceProvider = serviceProvider;
17 } 18 }
18 19
19 public IWixToolsetServiceProvider ServiceProvider { get; } 20 public IServiceProvider ServiceProvider { get; }
20 21
21 public IMessaging Messaging { get; set; } 22 public IMessaging Messaging { get; set; }
22 23
diff --git a/src/WixToolset.Core/LinkContext.cs b/src/WixToolset.Core/LinkContext.cs
index 2f5ecf59..528d0f0f 100644
--- a/src/WixToolset.Core/LinkContext.cs
+++ b/src/WixToolset.Core/LinkContext.cs
@@ -2,6 +2,7 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Data; 8 using WixToolset.Data;
@@ -11,12 +12,12 @@ namespace WixToolset.Core
11 12
12 internal class LinkContext : ILinkContext 13 internal class LinkContext : ILinkContext
13 { 14 {
14 internal LinkContext(IWixToolsetServiceProvider serviceProvider) 15 internal LinkContext(IServiceProvider serviceProvider)
15 { 16 {
16 this.ServiceProvider = serviceProvider; 17 this.ServiceProvider = serviceProvider;
17 } 18 }
18 19
19 public IWixToolsetServiceProvider ServiceProvider { get; } 20 public IServiceProvider ServiceProvider { get; }
20 21
21 public IEnumerable<ILinkerExtension> Extensions { get; set; } 22 public IEnumerable<ILinkerExtension> Extensions { get; set; }
22 23
diff --git a/src/WixToolset.Core/Linker.cs b/src/WixToolset.Core/Linker.cs
index f5461bbc..d5c51f96 100644
--- a/src/WixToolset.Core/Linker.cs
+++ b/src/WixToolset.Core/Linker.cs
@@ -27,14 +27,14 @@ namespace WixToolset.Core
27 /// <summary> 27 /// <summary>
28 /// Creates a linker. 28 /// Creates a linker.
29 /// </summary> 29 /// </summary>
30 internal Linker(IWixToolsetServiceProvider serviceProvider) 30 internal Linker(IServiceProvider serviceProvider)
31 { 31 {
32 this.ServiceProvider = serviceProvider; 32 this.ServiceProvider = serviceProvider;
33 this.Messaging = this.ServiceProvider.GetService<IMessaging>(); 33 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
34 this.sectionIdOnRows = true; // TODO: what is the correct value for this? 34 this.sectionIdOnRows = true; // TODO: what is the correct value for this?
35 } 35 }
36 36
37 private IWixToolsetServiceProvider ServiceProvider { get; } 37 private IServiceProvider ServiceProvider { get; }
38 38
39 private IMessaging Messaging { get; } 39 private IMessaging Messaging { get; }
40 40
diff --git a/src/WixToolset.Core/LocalizationParser.cs b/src/WixToolset.Core/LocalizationParser.cs
index aaf4c425..dd5144ca 100644
--- a/src/WixToolset.Core/LocalizationParser.cs
+++ b/src/WixToolset.Core/LocalizationParser.cs
@@ -15,7 +15,7 @@ namespace WixToolset.Core
15 public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl"; 15 public static readonly XNamespace WxlNamespace = "http://wixtoolset.org/schemas/v4/wxl";
16 private const string XmlElementName = "WixLocalization"; 16 private const string XmlElementName = "WixLocalization";
17 17
18 internal LocalizationParser(IWixToolsetServiceProvider serviceProvider) 18 internal LocalizationParser(IServiceProvider serviceProvider)
19 { 19 {
20 this.Messaging = serviceProvider.GetService<IMessaging>(); 20 this.Messaging = serviceProvider.GetService<IMessaging>();
21 } 21 }
diff --git a/src/WixToolset.Core/PreprocessContext.cs b/src/WixToolset.Core/PreprocessContext.cs
index d273d76b..0b735a7c 100644
--- a/src/WixToolset.Core/PreprocessContext.cs
+++ b/src/WixToolset.Core/PreprocessContext.cs
@@ -2,21 +2,21 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Data; 8 using WixToolset.Data;
8 using WixToolset.Extensibility; 9 using WixToolset.Extensibility;
9 using WixToolset.Extensibility.Data; 10 using WixToolset.Extensibility.Data;
10 using WixToolset.Extensibility.Services;
11 11
12 internal class PreprocessContext : IPreprocessContext 12 internal class PreprocessContext : IPreprocessContext
13 { 13 {
14 internal PreprocessContext(IWixToolsetServiceProvider serviceProvider) 14 internal PreprocessContext(IServiceProvider serviceProvider)
15 { 15 {
16 this.ServiceProvider = serviceProvider; 16 this.ServiceProvider = serviceProvider;
17 } 17 }
18 18
19 public IWixToolsetServiceProvider ServiceProvider { get; } 19 public IServiceProvider ServiceProvider { get; }
20 20
21 public IEnumerable<IPreprocessorExtension> Extensions { get; set; } 21 public IEnumerable<IPreprocessorExtension> Extensions { get; set; }
22 22
diff --git a/src/WixToolset.Core/Preprocessor.cs b/src/WixToolset.Core/Preprocessor.cs
index 81b17578..603c0e5b 100644
--- a/src/WixToolset.Core/Preprocessor.cs
+++ b/src/WixToolset.Core/Preprocessor.cs
@@ -37,14 +37,14 @@ namespace WixToolset.Core
37 XmlResolver = null, 37 XmlResolver = null,
38 }; 38 };
39 39
40 internal Preprocessor(IWixToolsetServiceProvider serviceProvider) 40 internal Preprocessor(IServiceProvider serviceProvider)
41 { 41 {
42 this.ServiceProvider = serviceProvider; 42 this.ServiceProvider = serviceProvider;
43 43
44 this.Messaging = this.ServiceProvider.GetService<IMessaging>(); 44 this.Messaging = this.ServiceProvider.GetService<IMessaging>();
45 } 45 }
46 46
47 private IWixToolsetServiceProvider ServiceProvider { get; } 47 private IServiceProvider ServiceProvider { get; }
48 48
49 private IMessaging Messaging { get; } 49 private IMessaging Messaging { get; }
50 50
@@ -1489,7 +1489,7 @@ namespace WixToolset.Core
1489 1489
1490 private class ProcessingState 1490 private class ProcessingState
1491 { 1491 {
1492 public ProcessingState(IWixToolsetServiceProvider serviceProvider, IPreprocessContext context) 1492 public ProcessingState(IServiceProvider serviceProvider, IPreprocessContext context)
1493 { 1493 {
1494 var path = Path.GetFullPath(context.SourcePath); 1494 var path = Path.GetFullPath(context.SourcePath);
1495 1495
diff --git a/src/WixToolset.Core/ResolveContext.cs b/src/WixToolset.Core/ResolveContext.cs
index 6e1718b6..185b556c 100644
--- a/src/WixToolset.Core/ResolveContext.cs
+++ b/src/WixToolset.Core/ResolveContext.cs
@@ -2,6 +2,7 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.Threading; 7 using System.Threading;
7 using WixToolset.Data; 8 using WixToolset.Data;
@@ -11,12 +12,12 @@ namespace WixToolset.Core
11 12
12 internal class ResolveContext : IResolveContext 13 internal class ResolveContext : IResolveContext
13 { 14 {
14 internal ResolveContext(IWixToolsetServiceProvider serviceProvider) 15 internal ResolveContext(IServiceProvider serviceProvider)
15 { 16 {
16 this.ServiceProvider = serviceProvider; 17 this.ServiceProvider = serviceProvider;
17 } 18 }
18 19
19 public IWixToolsetServiceProvider ServiceProvider { get; } 20 public IServiceProvider ServiceProvider { get; }
20 21
21 public IEnumerable<IBindPath> BindPaths { get; set; } 22 public IEnumerable<IBindPath> BindPaths { get; set; }
22 23
diff --git a/src/WixToolset.Core/Resolver.cs b/src/WixToolset.Core/Resolver.cs
index 4f12ae76..92c2a9c9 100644
--- a/src/WixToolset.Core/Resolver.cs
+++ b/src/WixToolset.Core/Resolver.cs
@@ -17,7 +17,7 @@ namespace WixToolset.Core
17 /// </summary> 17 /// </summary>
18 internal class Resolver : IResolver 18 internal class Resolver : IResolver
19 { 19 {
20 internal Resolver(IWixToolsetServiceProvider serviceProvider) 20 internal Resolver(IServiceProvider serviceProvider)
21 { 21 {
22 this.ServiceProvider = serviceProvider; 22 this.ServiceProvider = serviceProvider;
23 23
@@ -26,7 +26,7 @@ namespace WixToolset.Core
26 this.VariableResolver = serviceProvider.GetService<IVariableResolver>(); 26 this.VariableResolver = serviceProvider.GetService<IVariableResolver>();
27 } 27 }
28 28
29 private IWixToolsetServiceProvider ServiceProvider { get; } 29 private IServiceProvider ServiceProvider { get; }
30 30
31 private IMessaging Messaging { get; } 31 private IMessaging Messaging { get; }
32 32
diff --git a/src/WixToolset.Core/UnbindContext.cs b/src/WixToolset.Core/UnbindContext.cs
index acfb8f1e..c3817a08 100644
--- a/src/WixToolset.Core/UnbindContext.cs
+++ b/src/WixToolset.Core/UnbindContext.cs
@@ -2,17 +2,17 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using WixToolset.Extensibility.Data; 6 using WixToolset.Extensibility.Data;
6 using WixToolset.Extensibility.Services;
7 7
8 internal class UnbindContext : IUnbindContext 8 internal class UnbindContext : IUnbindContext
9 { 9 {
10 internal UnbindContext(IWixToolsetServiceProvider serviceProvider) 10 internal UnbindContext(IServiceProvider serviceProvider)
11 { 11 {
12 this.ServiceProvider = serviceProvider; 12 this.ServiceProvider = serviceProvider;
13 } 13 }
14 14
15 public IWixToolsetServiceProvider ServiceProvider { get; } 15 public IServiceProvider ServiceProvider { get; }
16 16
17 public string ExportBasePath { get; set; } 17 public string ExportBasePath { get; set; }
18 18
diff --git a/src/WixToolset.Core/Unbinder.cs b/src/WixToolset.Core/Unbinder.cs
index f712ec3f..3ef77083 100644
--- a/src/WixToolset.Core/Unbinder.cs
+++ b/src/WixToolset.Core/Unbinder.cs
@@ -2,6 +2,7 @@
2 2
3namespace WixToolset.Core 3namespace WixToolset.Core
4{ 4{
5 using System;
5 using System.Collections.Generic; 6 using System.Collections.Generic;
6 using System.IO; 7 using System.IO;
7 using WixToolset.Data; 8 using WixToolset.Data;
@@ -13,7 +14,7 @@ namespace WixToolset.Core
13 /// </summary> 14 /// </summary>
14 internal sealed class Unbinder : IUnbinder 15 internal sealed class Unbinder : IUnbinder
15 { 16 {
16 public Unbinder(IWixToolsetServiceProvider serviceProvider) 17 public Unbinder(IServiceProvider serviceProvider)
17 { 18 {
18 this.ServiceProvider = serviceProvider; 19 this.ServiceProvider = serviceProvider;
19 20
@@ -21,7 +22,7 @@ namespace WixToolset.Core
21 this.BackendFactories = extensionManager.GetServices<IBackendFactory>(); 22 this.BackendFactories = extensionManager.GetServices<IBackendFactory>();
22 } 23 }
23 24
24 public IWixToolsetServiceProvider ServiceProvider { get; } 25 public IServiceProvider ServiceProvider { get; }
25 26
26 public IEnumerable<IBackendFactory> BackendFactories { get; } 27 public IEnumerable<IBackendFactory> BackendFactories { get; }
27 28
diff --git a/src/WixToolset.Core/VariableResolver.cs b/src/WixToolset.Core/VariableResolver.cs
index 140e7def..437cabb7 100644
--- a/src/WixToolset.Core/VariableResolver.cs
+++ b/src/WixToolset.Core/VariableResolver.cs
@@ -21,7 +21,7 @@ namespace WixToolset.Core
21 /// <summary> 21 /// <summary>
22 /// Instantiate a new VariableResolver. 22 /// Instantiate a new VariableResolver.
23 /// </summary> 23 /// </summary>
24 internal VariableResolver(IWixToolsetServiceProvider serviceProvider) 24 internal VariableResolver(IServiceProvider serviceProvider)
25 { 25 {
26 this.ServiceProvider = serviceProvider; 26 this.ServiceProvider = serviceProvider;
27 this.Messaging = serviceProvider.GetService<IMessaging>(); 27 this.Messaging = serviceProvider.GetService<IMessaging>();
@@ -31,7 +31,7 @@ namespace WixToolset.Core
31 this.localizedControls = new Dictionary<string, LocalizedControl>(); 31 this.localizedControls = new Dictionary<string, LocalizedControl>();
32 } 32 }
33 33
34 private IWixToolsetServiceProvider ServiceProvider { get; } 34 private IServiceProvider ServiceProvider { get; }
35 35
36 private IMessaging Messaging { get; } 36 private IMessaging Messaging { get; }
37 37
diff --git a/src/WixToolset.Core/WixToolsetServiceProvider.cs b/src/WixToolset.Core/WixToolsetServiceProvider.cs
index 87a6f76b..5d700ba0 100644
--- a/src/WixToolset.Core/WixToolsetServiceProvider.cs
+++ b/src/WixToolset.Core/WixToolsetServiceProvider.cs
@@ -73,14 +73,14 @@ namespace WixToolset.Core
73 73
74 private Dictionary<Type, object> Singletons { get; } 74 private Dictionary<Type, object> Singletons { get; }
75 75
76 public bool TryGetService(Type serviceType, out object service) 76 public object GetService(Type serviceType)
77 { 77 {
78 if (serviceType == null) 78 if (serviceType == null)
79 { 79 {
80 throw new ArgumentNullException(nameof(serviceType)); 80 throw new ArgumentNullException(nameof(serviceType));
81 } 81 }
82 82
83 if (!this.Singletons.TryGetValue(serviceType, out service)) 83 if (!this.Singletons.TryGetValue(serviceType, out var service))
84 { 84 {
85 if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction)) 85 if (this.CreationFunctions.TryGetValue(serviceType, out var creationFunction))
86 { 86 {
@@ -95,24 +95,7 @@ namespace WixToolset.Core
95 } 95 }
96 } 96 }
97 97
98 return service != null; 98 return service;
99 }
100
101 public bool TryGetService<T>(out T service) where T : class
102 {
103 var success = this.TryGetService(typeof(T), out var untypedService);
104 service = (T)untypedService;
105 return success;
106 }
107
108 public object GetService(Type serviceType)
109 {
110 return this.TryGetService(serviceType, out var service) ? service : throw new ArgumentException($"Unknown service type: {serviceType.Name}", nameof(serviceType));
111 }
112
113 public T GetService<T>() where T : class
114 {
115 return (T)this.GetService(typeof(T));
116 } 99 }
117 100
118 public void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction) 101 public void AddService(Type serviceType, Func<IWixToolsetCoreServiceProvider, Dictionary<Type, object>, object> creationFunction)
diff --git a/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
index 5c37c25b..b33b8891 100644
--- a/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/BundleExtractionFixture.cs
@@ -8,6 +8,7 @@ namespace WixToolsetTest.CoreIntegration
8 using WixToolset.Core; 8 using WixToolset.Core;
9 using WixToolset.Core.TestPackage; 9 using WixToolset.Core.TestPackage;
10 using WixToolset.Data; 10 using WixToolset.Data;
11 using WixToolset.Extensibility.Services;
11 using Xunit; 12 using Xunit;
12 13
13 public class BundleExtractionFixture 14 public class BundleExtractionFixture
diff --git a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
index 89057991..ae8a1bcc 100644
--- a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
@@ -10,6 +10,7 @@ namespace WixToolsetTest.CoreIntegration
10 using WixToolset.Data; 10 using WixToolset.Data;
11 using WixToolset.Data.Symbols; 11 using WixToolset.Data.Symbols;
12 using WixToolset.Extensibility.Data; 12 using WixToolset.Extensibility.Data;
13 using WixToolset.Extensibility.Services;
13 using Xunit; 14 using Xunit;
14 15
15 public class PreprocessorFixture 16 public class PreprocessorFixture