diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-06-02 19:45:25 +1000 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-06-03 14:24:34 +1000 |
| commit | a04ddca42b2070124c63a61c661e2b96a5bddac2 (patch) | |
| tree | b95095a7df475d32f3842542423d235accbdac70 /src/WixToolset.BuildTasks/WixBuild.cs | |
| parent | 82a26a321bae36e38743f50f38887387a392ce24 (diff) | |
| download | wix-a04ddca42b2070124c63a61c661e2b96a5bddac2.tar.gz wix-a04ddca42b2070124c63a61c661e2b96a5bddac2.tar.bz2 wix-a04ddca42b2070124c63a61c661e2b96a5bddac2.zip | |
Refactor the tasks so that the in-proc code is in partial classes.
Diffstat (limited to 'src/WixToolset.BuildTasks/WixBuild.cs')
| -rw-r--r-- | src/WixToolset.BuildTasks/WixBuild.cs | 46 |
1 files changed, 1 insertions, 45 deletions
diff --git a/src/WixToolset.BuildTasks/WixBuild.cs b/src/WixToolset.BuildTasks/WixBuild.cs index c15bc2f7..b669c52b 100644 --- a/src/WixToolset.BuildTasks/WixBuild.cs +++ b/src/WixToolset.BuildTasks/WixBuild.cs | |||
| @@ -5,15 +5,11 @@ namespace WixToolset.BuildTasks | |||
| 5 | using System; | 5 | using System; |
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using Microsoft.Build.Framework; | 7 | using Microsoft.Build.Framework; |
| 8 | using WixToolset.Data; | ||
| 9 | using WixToolset.Extensibility; | ||
| 10 | using WixToolset.Extensibility.Data; | ||
| 11 | using WixToolset.Extensibility.Services; | ||
| 12 | 8 | ||
| 13 | /// <summary> | 9 | /// <summary> |
| 14 | /// An MSBuild task to run the WiX compiler. | 10 | /// An MSBuild task to run the WiX compiler. |
| 15 | /// </summary> | 11 | /// </summary> |
| 16 | public sealed class WixBuild : ToolsetTask | 12 | public sealed partial class WixBuild : ToolsetTask |
| 17 | { | 13 | { |
| 18 | public string[] Cultures { get; set; } | 14 | public string[] Cultures { get; set; } |
| 19 | 15 | ||
| @@ -76,24 +72,8 @@ namespace WixToolset.BuildTasks | |||
| 76 | public string[] SuppressIces { get; set; } | 72 | public string[] SuppressIces { get; set; } |
| 77 | public string AdditionalCub { get; set; } | 73 | public string AdditionalCub { get; set; } |
| 78 | 74 | ||
| 79 | protected override string TaskShortName => "WIX"; | ||
| 80 | protected override string ToolName => "wix.exe"; | 75 | protected override string ToolName => "wix.exe"; |
| 81 | 76 | ||
| 82 | protected override int ExecuteCore(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string commandLineString) | ||
| 83 | { | ||
| 84 | var messaging = serviceProvider.GetService<IMessaging>(); | ||
| 85 | messaging.SetListener(listener); | ||
| 86 | |||
| 87 | var arguments = serviceProvider.GetService<ICommandLineArguments>(); | ||
| 88 | arguments.Populate(commandLineString); | ||
| 89 | |||
| 90 | var commandLine = serviceProvider.GetService<ICommandLine>(); | ||
| 91 | commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); | ||
| 92 | commandLine.Arguments = arguments; | ||
| 93 | var command = commandLine.ParseStandardCommandLine(); | ||
| 94 | return command?.Execute() ?? -1; | ||
| 95 | } | ||
| 96 | |||
| 97 | protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) | 77 | protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) |
| 98 | { | 78 | { |
| 99 | commandLineBuilder.AppendTextUnquoted("build"); | 79 | commandLineBuilder.AppendTextUnquoted("build"); |
| @@ -126,30 +106,6 @@ namespace WixToolset.BuildTasks | |||
| 126 | commandLineBuilder.AppendFileNamesIfNotNull(this.SourceFiles, " "); | 106 | commandLineBuilder.AppendFileNamesIfNotNull(this.SourceFiles, " "); |
| 127 | } | 107 | } |
| 128 | 108 | ||
| 129 | private IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions) | ||
| 130 | { | ||
| 131 | var extensionManager = serviceProvider.GetService<IExtensionManager>(); | ||
| 132 | |||
| 133 | foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) }) | ||
| 134 | { | ||
| 135 | extensionManager.Add(type.Assembly); | ||
| 136 | } | ||
| 137 | |||
| 138 | foreach (var extension in extensions) | ||
| 139 | { | ||
| 140 | try | ||
| 141 | { | ||
| 142 | extensionManager.Load(extension); | ||
| 143 | } | ||
| 144 | catch (WixException e) | ||
| 145 | { | ||
| 146 | messaging.Write(e.Error); | ||
| 147 | } | ||
| 148 | } | ||
| 149 | |||
| 150 | return extensionManager; | ||
| 151 | } | ||
| 152 | |||
| 153 | private IEnumerable<string> CalculateBindPathStrings() | 109 | private IEnumerable<string> CalculateBindPathStrings() |
| 154 | { | 110 | { |
| 155 | if (null != this.BindInputPaths) | 111 | if (null != this.BindInputPaths) |
