From 2724cfee4c163f3297ee25edfd2372767cfd4945 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 19 Jul 2018 00:58:00 -0700 Subject: Move tool projects to Tools repo --- src/WixToolset.Core.TestPackage/WixRunner.cs | 39 +++++++++++++++++++--- .../WixToolset.Core.TestPackage.csproj | 4 +-- 2 files changed, 36 insertions(+), 7 deletions(-) (limited to 'src/WixToolset.Core.TestPackage') diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs index ca0a6fb8..45c7ab3d 100644 --- a/src/WixToolset.Core.TestPackage/WixRunner.cs +++ b/src/WixToolset.Core.TestPackage/WixRunner.cs @@ -2,9 +2,11 @@ namespace WixToolset.Core.TestPackage { + using System; using System.Collections.Generic; using WixToolset.Data; using WixToolset.Extensibility; + using WixToolset.Extensibility.Services; public static class WixRunner { @@ -12,12 +14,41 @@ namespace WixToolset.Core.TestPackage { var listener = new TestListener(); - var program = new Program(); - var result = program.Run(new WixToolsetServiceProvider(), listener, args); - messages = listener.Messages; - return result; + var serviceProvider = new WixToolsetServiceProvider(); + + var messaging = serviceProvider.GetService(); + messaging.SetListener(listener); + + var arguments = serviceProvider.GetService(); + arguments.Populate(args); + + var context = serviceProvider.GetService(); + context.Messaging = messaging; + context.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); + context.Arguments = arguments; + + var commandLine = serviceProvider.GetService(); + var command = commandLine.ParseStandardCommandLine(context); + return command?.Execute() ?? 1; + } + + private static IExtensionManager CreateExtensionManagerWithStandardBackends(IServiceProvider serviceProvider, string[] extensions) + { + var extensionManager = serviceProvider.GetService(); + + foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) }) + { + extensionManager.Add(type.Assembly); + } + + foreach (var extension in extensions) + { + extensionManager.Load(extension); + } + + return extensionManager; } private class TestListener : IMessageListener diff --git a/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj b/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj index 2b9e2bde..6cdd8762 100644 --- a/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj +++ b/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj @@ -10,7 +10,6 @@ - @@ -18,7 +17,6 @@ - <_PackageFiles Include="$(OutputPath)\wix.dll" BuildAction="None" PackagePath="lib\$(TargetFramework)\" /> <_PackageFiles Include="$(OutputPath)\WixToolset.Core.dll" BuildAction="None" PackagePath="lib\$(TargetFramework)\" /> <_PackageFiles Include="$(OutputPath)\WixToolset.Core.Burn.dll" BuildAction="None" PackagePath="lib\$(TargetFramework)\" /> <_PackageFiles Include="$(OutputPath)\WixToolset.Core.WindowsInstaller.dll" BuildAction="None" PackagePath="lib\$(TargetFramework)\" /> @@ -37,6 +35,6 @@ - + -- cgit v1.2.3-55-g6feb