diff options
| author | Bob Arnson <bob@joyofsetup.com> | 2018-08-22 14:21:31 -0400 |
|---|---|---|
| committer | Rob Mensching <rob@robmensching.com> | 2018-08-22 11:26:48 -0700 |
| commit | ce9ac1ddffd46daabc61ff4ba0069af576865bd1 (patch) | |
| tree | ece16cb293e8ffd891dc255673dcf2abbb3678f9 /src/WixToolset.BuildTasks | |
| parent | f34941825894d44059a560d9f95016ac97803504 (diff) | |
| download | wix-ce9ac1ddffd46daabc61ff4ba0069af576865bd1.tar.gz wix-ce9ac1ddffd46daabc61ff4ba0069af576865bd1.tar.bz2 wix-ce9ac1ddffd46daabc61ff4ba0069af576865bd1.zip | |
Log details when extension assembly types can't be loaded.
Diffstat (limited to 'src/WixToolset.BuildTasks')
| -rw-r--r-- | src/WixToolset.BuildTasks/DoIt.cs | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/WixToolset.BuildTasks/DoIt.cs b/src/WixToolset.BuildTasks/DoIt.cs index 33842e44..01938ed6 100644 --- a/src/WixToolset.BuildTasks/DoIt.cs +++ b/src/WixToolset.BuildTasks/DoIt.cs | |||
| @@ -4,6 +4,8 @@ namespace WixToolset.BuildTasks | |||
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
| 7 | using System.Linq; | ||
| 8 | using System.Reflection; | ||
| 7 | using System.Runtime.InteropServices; | 9 | using System.Runtime.InteropServices; |
| 8 | using Microsoft.Build.Framework; | 10 | using Microsoft.Build.Framework; |
| 9 | using Microsoft.Build.Utilities; | 11 | using Microsoft.Build.Utilities; |
| @@ -170,13 +172,13 @@ namespace WixToolset.BuildTasks | |||
| 170 | arguments.Populate(commandLineString); | 172 | arguments.Populate(commandLineString); |
| 171 | 173 | ||
| 172 | var commandLine = serviceProvider.GetService<ICommandLineParser>(); | 174 | var commandLine = serviceProvider.GetService<ICommandLineParser>(); |
| 173 | commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); | 175 | commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); |
| 174 | commandLine.Arguments = arguments; | 176 | commandLine.Arguments = arguments; |
| 175 | var command = commandLine.ParseStandardCommandLine(); | 177 | var command = commandLine.ParseStandardCommandLine(); |
| 176 | command?.Execute(); | 178 | command?.Execute(); |
| 177 | } | 179 | } |
| 178 | 180 | ||
| 179 | private IExtensionManager CreateExtensionManagerWithStandardBackends(IServiceProvider serviceProvider, string[] extensions) | 181 | private IExtensionManager CreateExtensionManagerWithStandardBackends(IServiceProvider serviceProvider, IMessaging messaging, string[] extensions) |
| 180 | { | 182 | { |
| 181 | var extensionManager = serviceProvider.GetService<IExtensionManager>(); | 183 | var extensionManager = serviceProvider.GetService<IExtensionManager>(); |
| 182 | 184 | ||
| @@ -187,7 +189,14 @@ namespace WixToolset.BuildTasks | |||
| 187 | 189 | ||
| 188 | foreach (var extension in extensions) | 190 | foreach (var extension in extensions) |
| 189 | { | 191 | { |
| 190 | extensionManager.Load(extension); | 192 | try |
| 193 | { | ||
| 194 | extensionManager.Load(extension); | ||
| 195 | } | ||
| 196 | catch (ReflectionTypeLoadException e) | ||
| 197 | { | ||
| 198 | messaging.Write(ErrorMessages.InvalidExtension(extension, String.Join(Environment.NewLine, e.LoaderExceptions.Select(le => le.ToString())))); | ||
| 199 | } | ||
| 191 | } | 200 | } |
| 192 | 201 | ||
| 193 | return extensionManager; | 202 | return extensionManager; |
