private MessageImportance ChooseReferenceLoggingImportance(Reference reference) { MessageImportance low = MessageImportance.Low; if ((reference.GetErrors().Count <= 0) || (!reference.IsPrimary && !reference.IsCopyLocal)) { return low; } return MessageImportance.Normal; }
/// <summary> /// Log any errors for a reference. /// </summary> /// <param name="reference">The reference.</param> /// <param name="importance">The importance of the message.</param> private void LogReferenceErrors(Reference reference, MessageImportance importance) { ICollection itemErrors = reference.GetErrors(); foreach (Exception itemError in itemErrors) { string message = String.Empty; string helpKeyword = null; bool dependencyProblem = false; if (itemError is ReferenceResolutionException) { message = Log.FormatResourceString("ResolveAssemblyReference.FailedToResolveReference", itemError.Message); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedToResolveReference"; dependencyProblem = false; } else if (itemError is DependencyResolutionException) { message = Log.FormatResourceString("ResolveAssemblyReference.FailedToFindDependentFiles", itemError.Message); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedToFindDependentFiles"; dependencyProblem = true; } else if (itemError is BadImageReferenceException) { message = Log.FormatResourceString("ResolveAssemblyReference.FailedWithException", itemError.Message); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedWithException"; dependencyProblem = false; } else { Debug.Assert(false, "Unexpected exception type."); } string messageOnly; string warningCode = Log.ExtractMessageCode(message, out messageOnly); // Treat as warning if this is primary and the problem wasn't with a dependency, otherwise, make it a comment. if (reference.IsPrimary && !dependencyProblem) { // Treat it as a warning Log.LogWarning(null, warningCode, helpKeyword, null, 0, 0, 0, 0, messageOnly); } else { // Just show the the message as a comment. Log.LogMessageFromResources(importance, "ResolveAssemblyReference.FourSpaceIndent", messageOnly); } } }
/// <summary> /// Choose an importance level for reporting information about this reference. /// </summary> /// <param name="reference">The reference.</param> private MessageImportance ChooseReferenceLoggingImportance(Reference reference) { MessageImportance importance = MessageImportance.Low; bool hadProblems = reference.GetErrors().Count > 0; // No problems means low importance. if (hadProblems) { if (reference.IsPrimary || reference.IsCopyLocal) { // The user cares more about Primary files and CopyLocal files. // Accordingly, we show messages about these files only in the higher verbosity levels // but only if there were errors during the resolution process. importance = MessageImportance.Normal; } } return importance; }
private void LogReferenceErrors(Reference reference, MessageImportance importance) { foreach (Exception exception in reference.GetErrors()) { string str3; string message = string.Empty; string helpKeyword = null; bool flag = false; if (exception is ReferenceResolutionException) { message = base.Log.FormatResourceString("ResolveAssemblyReference.FailedToResolveReference", new object[] { exception.Message }); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedToResolveReference"; flag = false; } else if (exception is DependencyResolutionException) { message = base.Log.FormatResourceString("ResolveAssemblyReference.FailedToFindDependentFiles", new object[] { exception.Message }); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedToFindDependentFiles"; flag = true; } else if (exception is BadImageReferenceException) { message = base.Log.FormatResourceString("ResolveAssemblyReference.FailedWithException", new object[] { exception.Message }); helpKeyword = "MSBuild.ResolveAssemblyReference.FailedWithException"; flag = false; } string warningCode = base.Log.ExtractMessageCode(message, out str3); if (reference.IsPrimary && !flag) { base.Log.LogWarning(null, warningCode, helpKeyword, null, 0, 0, 0, 0, str3, new object[0]); } else { base.Log.LogMessageFromResources(importance, "ResolveAssemblyReference.FourSpaceIndent", new object[] { str3 }); } } }