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));