@joebigelow / wix-1 / commits / 0185c2ea

Move Windows Installer specific backend services to WindowsInstaller

Rob Mensching committed Jun 23, 2020 at 16:45 UTC 0185c2ea6e638dc7e1c5224739717ba2152bb510
3 files changed +18 -2
src/WixToolset.Core.WindowsInstaller/ExtensibilityServices/WindowsInstallerBackendHelper.cs renamed
+1 -1
@@ -1,6 +1,6 @@
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 -namespace WixToolset.Core.ExtensibilityServices
3 +namespace WixToolset.Core.WindowsInstaller.ExtensibilityServices
4 {
5 using System.Linq;
6 using WixToolset.Data;
src/WixToolset.Core.WindowsInstaller/WixToolsetCoreServiceProviderExtensions.cs
+17
@@ -2,16 +2,33 @@
2
3 namespace WixToolset.Core.WindowsInstaller
4 {
5 + using System;
6 + using System.Collections.Generic;
7 + using WixToolset.Core.WindowsInstaller.ExtensibilityServices;
8 using WixToolset.Extensibility.Services;
9
10 public static class WixToolsetCoreServiceProviderExtensions
11 {
12 public static IWixToolsetCoreServiceProvider AddWindowsInstallerBackend(this IWixToolsetCoreServiceProvider coreProvider)
13 {
14 + AddServices(coreProvider);
15 +
16 var extensionManager = coreProvider.GetService<IExtensionManager>();
17 extensionManager.Add(typeof(WindowsInstallerExtensionFactory).Assembly);
18
19 return coreProvider;
20 }
21 +
22 + private static void AddServices(IWixToolsetCoreServiceProvider coreProvider)
23 + {
24 + // Singletons.
25 + coreProvider.AddService((provider, singletons) => AddSingleton<IWindowsInstallerBackendHelper>(singletons, new WindowsInstallerBackendHelper()));
26 + }
27 +
28 + private static T AddSingleton<T>(Dictionary<Type, object> singletons, T service) where T : class
29 + {
30 + singletons.Add(typeof(T), service);
31 + return service;
32 + }
33 }
34 }
src/WixToolset.Core/WixToolsetServiceProvider.cs
-1
@@ -25,7 +25,6 @@ namespace WixToolset.Core
25 this.AddService((provider, singletons) => AddSingleton<IPreprocessHelper>(singletons, new PreprocessHelper(provider)));
26 this.AddService((provider, singletons) => AddSingleton<IBackendHelper>(singletons, new BackendHelper(provider)));
27 this.AddService((provider, singletons) => AddSingleton<IPathResolver>(singletons, new PathResolver()));
28 - this.AddService((provider, singletons) => AddSingleton<IWindowsInstallerBackendHelper>(singletons, new WindowsInstallerBackendHelper()));
28
29 // Transients.
30 this.AddService<ICommandLineArguments>((provider, singletons) => new CommandLineArguments(provider));