using System; using System.Reflection; namespace NuGet { public static class ExceptionUtility { public static Exception Unwrap(Exception exception) { if (exception == null) { throw new ArgumentNullException("exception"); } if (exception.InnerException == null) { return exception; } // Always return the inner exception from a target invocation exception if (exception is AggregateException || exception is TargetInvocationException) { return exception.GetBaseException(); } return exception; } } }