diff options
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) |