diff options
| author | Rob Mensching <rob@firegiant.com> | 2018-12-27 11:07:13 -0800 |
|---|---|---|
| committer | Rob Mensching <rob@robmensching.com> | 2018-12-27 11:14:08 -0800 |
| commit | c6da3f6d1c9b571d8f58745560332c3e0531a5c5 (patch) | |
| tree | 660515bae84a9480e3fa87bbfd635946935d5f49 /src/WixToolset.BuildTasks | |
| parent | c82991d4af4ce7fa7330e99e18840ecff4f3fabd (diff) | |
| download | wix-c6da3f6d1c9b571d8f58745560332c3e0531a5c5.tar.gz wix-c6da3f6d1c9b571d8f58745560332c3e0531a5c5.tar.bz2 wix-c6da3f6d1c9b571d8f58745560332c3e0531a5c5.zip | |
Catch unhandled exceptions at the top to provide useful debug info
Fixes wixtoolset/issues#5884
Diffstat (limited to 'src/WixToolset.BuildTasks')
| -rw-r--r-- | src/WixToolset.BuildTasks/DoIt.cs | 22 | ||||
| -rw-r--r-- | src/WixToolset.BuildTasks/WixToolset.BuildTasks.csproj | 1 |
2 files changed, 12 insertions, 11 deletions
diff --git a/src/WixToolset.BuildTasks/DoIt.cs b/src/WixToolset.BuildTasks/DoIt.cs index aeeb428b..07bf05e5 100644 --- a/src/WixToolset.BuildTasks/DoIt.cs +++ b/src/WixToolset.BuildTasks/DoIt.cs | |||
| @@ -4,8 +4,6 @@ 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; | ||
| 9 | using System.Runtime.InteropServices; | 7 | using System.Runtime.InteropServices; |
| 10 | using Microsoft.Build.Framework; | 8 | using Microsoft.Build.Framework; |
| 11 | using Microsoft.Build.Utilities; | 9 | using Microsoft.Build.Utilities; |
| @@ -111,9 +109,17 @@ namespace WixToolset.BuildTasks | |||
| 111 | 109 | ||
| 112 | public override bool Execute() | 110 | public override bool Execute() |
| 113 | { | 111 | { |
| 112 | var serviceProvider = new WixToolsetServiceProvider(); | ||
| 113 | |||
| 114 | var listener = new MsbuildMessageListener(this.Log, "WIX", this.BuildEngine.ProjectFileOfTaskNode); | ||
| 115 | |||
| 114 | try | 116 | try |
| 115 | { | 117 | { |
| 116 | this.ExecuteCore(); | 118 | this.ExecuteCore(serviceProvider, listener); |
| 119 | } | ||
| 120 | catch (WixException e) | ||
| 121 | { | ||
| 122 | listener.Write(e.Error); | ||
| 117 | } | 123 | } |
| 118 | catch (Exception e) | 124 | catch (Exception e) |
| 119 | { | 125 | { |
| @@ -128,10 +134,8 @@ namespace WixToolset.BuildTasks | |||
| 128 | return !this.Log.HasLoggedErrors; | 134 | return !this.Log.HasLoggedErrors; |
| 129 | } | 135 | } |
| 130 | 136 | ||
| 131 | private void ExecuteCore() | 137 | private void ExecuteCore(IServiceProvider serviceProvider, IMessageListener listener) |
| 132 | { | 138 | { |
| 133 | var listener = new MsbuildMessageListener(this.Log, "WIX", this.BuildEngine.ProjectFileOfTaskNode); | ||
| 134 | |||
| 135 | var commandLineBuilder = new WixCommandLineBuilder(); | 139 | var commandLineBuilder = new WixCommandLineBuilder(); |
| 136 | 140 | ||
| 137 | commandLineBuilder.AppendTextUnquoted("build"); | 141 | commandLineBuilder.AppendTextUnquoted("build"); |
| @@ -164,8 +168,6 @@ namespace WixToolset.BuildTasks | |||
| 164 | 168 | ||
| 165 | this.Log.LogMessage(MessageImportance.Normal, "wix.exe " + commandLineString); | 169 | this.Log.LogMessage(MessageImportance.Normal, "wix.exe " + commandLineString); |
| 166 | 170 | ||
| 167 | var serviceProvider = new WixToolsetServiceProvider(); | ||
| 168 | |||
| 169 | var messaging = serviceProvider.GetService<IMessaging>(); | 171 | var messaging = serviceProvider.GetService<IMessaging>(); |
| 170 | messaging.SetListener(listener); | 172 | messaging.SetListener(listener); |
| 171 | 173 | ||
| @@ -194,9 +196,9 @@ namespace WixToolset.BuildTasks | |||
| 194 | { | 196 | { |
| 195 | extensionManager.Load(extension); | 197 | extensionManager.Load(extension); |
| 196 | } | 198 | } |
| 197 | catch (ReflectionTypeLoadException e) | 199 | catch (WixException e) |
| 198 | { | 200 | { |
| 199 | messaging.Write(ErrorMessages.InvalidExtension(extension, String.Join(Environment.NewLine, e.LoaderExceptions.Select(le => le.ToString())))); | 201 | messaging.Write(e.Error); |
| 200 | } | 202 | } |
| 201 | } | 203 | } |
| 202 | 204 | ||
diff --git a/src/WixToolset.BuildTasks/WixToolset.BuildTasks.csproj b/src/WixToolset.BuildTasks/WixToolset.BuildTasks.csproj index 10a3f057..5020f891 100644 --- a/src/WixToolset.BuildTasks/WixToolset.BuildTasks.csproj +++ b/src/WixToolset.BuildTasks/WixToolset.BuildTasks.csproj | |||
| @@ -32,7 +32,6 @@ | |||
| 32 | </ItemGroup> | 32 | </ItemGroup> |
| 33 | 33 | ||
| 34 | <ItemGroup> | 34 | <ItemGroup> |
| 35 | <PackageReference Include="WixToolset.Core" Version="4.0.*" /> | ||
| 36 | <PackageReference Include="WixToolset.Core.Burn" Version="4.0.*" /> | 35 | <PackageReference Include="WixToolset.Core.Burn" Version="4.0.*" /> |
| 37 | <PackageReference Include="WixToolset.Core.WindowsInstaller" Version="4.0.*" /> | 36 | <PackageReference Include="WixToolset.Core.WindowsInstaller" Version="4.0.*" /> |
| 38 | </ItemGroup> | 37 | </ItemGroup> |
