private MessageImportance ChooseReferenceLoggingImportance(Reference reference)
 {
     MessageImportance low = MessageImportance.Low;
     if ((reference.GetErrors().Count <= 0) || (!reference.IsPrimary && !reference.IsCopyLocal))
     {
         return low;
     }
     return MessageImportance.Normal;
 }
コード例 #2
0
        /// <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);
                }
            }
        }
コード例 #3
0
        /// <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 });
         }
     }
 }