aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.BuildTasks/WixBuild.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.BuildTasks/WixBuild.cs')
-rw-r--r--src/WixToolset.BuildTasks/WixBuild.cs46
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)