in src/StructuredLogger/Strings/Strings.cs [33:226]
private static void InitializeRegex()
{
OutputPropertyMessagePrefix = GetString("OutputPropertyLogMessage").Replace("{0}={1}", "");
BuildingWithToolsVersionPrefix = CreateRegex(GetString("ToolsVersionInEffectForBuild"), 1);
PropertyGroupMessagePrefix = GetString("PropertyGroupLogMessage").Replace("{0}={1}", "");
ForSearchPathPrefix = CreateRegex(GetString("ResolveAssemblyReference.SearchPath"), 1);
UnifiedPrimaryReferencePrefix = CreateRegex(GetString("ResolveAssemblyReference.UnifiedPrimaryReference"), 1);
PrimaryReferencePrefix = CreateRegex(GetString("ResolveAssemblyReference.PrimaryReference"), 1);
DependencyPrefix = CreateRegex(GetString("ResolveAssemblyReference.Dependency"), 1);
UnifiedDependencyPrefix = CreateRegex(GetString("ResolveAssemblyReference.UnifiedDependency"), 1);
AssemblyFoldersExLocation = CreateRegex(GetString("ResolveAssemblyReference.AssemblyFoldersExSearchLocations"), 1);
AdditionalPropertiesPrefix = CreateRegex(GetString("General.AdditionalProperties"), 1);
OverridingGlobalPropertiesPrefix = CreateRegex(GetString("General.OverridingProperties"), 1);
TargetAlreadyCompleteSuccess = GetString("TargetAlreadyCompleteSuccess");
TargetAlreadyCompleteSuccessRegex = CreateRegex(TargetAlreadyCompleteSuccess, 1);
TargetAlreadyCompleteFailure = GetString("TargetAlreadyCompleteFailure");
TargetAlreadyCompleteFailureRegex = CreateRegex(TargetAlreadyCompleteFailure, 1);
TargetSkippedWhenSkipNonexistentTargets = CreateRegex(GetString("TargetSkippedWhenSkipNonexistentTargets"), 1);
SkipTargetBecauseOutputsUpToDateRegex = CreateRegex(GetString("SkipTargetBecauseOutputsUpToDate"), 1);
RemovingProjectProperties = CreateRegex(GetString("General.ProjectUndefineProperties"), 1);
DuplicateImport = CreateRegex(GetString("SearchPathsForMSBuildExtensionsPath"), 3);
SearchPathsForMSBuildExtensionsPath = CreateRegex(GetString("SearchPathsForMSBuildExtensionsPath"), 2);
OverridingTarget = CreateRegex(GetString("OverridingTarget"), 4);
TryingExtensionsPath = CreateRegex(GetString("TryingExtensionsPath"), 2);
ProjectImported = GetString("ProjectImported");
string projectImported = "^" + ProjectImported
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)") + "$";
ProjectImportedRegex = new Regex(projectImported, RegexOptions.Compiled);
TargetSkippedFalseCondition = GetString("TargetSkippedFalseCondition");
TargetSkippedFalseConditionRegex = CreateRegex(TargetSkippedFalseCondition, 3);
TaskSkippedFalseCondition = GetString("TaskSkippedFalseCondition");
TaskSkippedFalseConditionRegex = CreateRegex(TaskSkippedFalseCondition, 3);
TargetDoesNotExistBeforeTargetMessage = CreateRegex(GetString("TargetDoesNotExistBeforeTargetMessage"), 2);
string copyingFileFromEscaped = Escape(GetString("Copy.FileComment"));
CopyingFileFromRegex = new Regex(copyingFileFromEscaped
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);
CreatingHardLinkRegex = new Regex(Escape(GetString("Copy.HardLinkComment"))
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);
DidNotCopyRegex = new Regex(Escape(GetString("Copy.DidNotCopyBecauseOfFileMatch"))
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)")
.Replace(@"\{2}", ".*?")
.Replace(@"\{3}", ".*?"), RegexOptions.Compiled);
RobocopyFileCopiedRegex = new Regex(Escape(RobocopyFileCopiedMessage)
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled );
RobocopyFileSkippedRegex = new Regex(Escape(RobocopyFileSkippedMessage)
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);
RobocopyFileFailedRegex = new Regex(Escape(RobocopyFileFailedMessage)
.Replace(@"\{0}", @"(?<From>[^\""]+)")
.Replace(@"\{1}", @"(?<To>[^\""]+)"), RegexOptions.Compiled);
ProjectImportSkippedMissingFile = GetString("ProjectImportSkippedMissingFile");
string skippedMissingFile = "^" + ProjectImportSkippedMissingFile
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
ProjectImportSkippedMissingFileRegex = new Regex(skippedMissingFile, RegexOptions.Compiled);
ProjectImportSkippedInvalidFile = GetString("ProjectImportSkippedInvalidFile");
string skippedInvalidFile = "^" + ProjectImportSkippedInvalidFile
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
ProjectImportSkippedInvalidFileRegex = new Regex(skippedInvalidFile, RegexOptions.Compiled);
ProjectImportSkippedEmptyFile = GetString("ProjectImportSkippedEmptyFile");
string skippedEmptyFile = "^" + ProjectImportSkippedEmptyFile
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
ProjectImportSkippedEmptyFileRegex = new Regex(skippedEmptyFile, RegexOptions.Compiled);
ProjectImportSkippedNoMatches = GetString("ProjectImportSkippedNoMatches");
string skippedNoMatches = "^" + ProjectImportSkippedNoMatches
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>.*)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
ProjectImportSkippedNoMatchesRegex = new Regex(skippedNoMatches, RegexOptions.Compiled);
PropertyReassignment = GetString("PropertyReassignment");
string propertyReassignment = "^" + PropertyReassignment
.Replace(@"$({0})=""{1}"" (", @"\$\((?<Name>\w+)\)="".*"" \(")
.Replace(@"""{2}"")", @""".*""\)")
.Replace("{3}", @"(?<File>.*) \((?<Line>\d+),(?<Column>\d+)\)$");
PropertyReassignmentRegex = new Regex(propertyReassignment, RegexOptions.Compiled | RegexOptions.Singleline);
string deferredResponseFile = "^" + GetString("DeferredResponseFile")
.Replace(@"{0}", @"(?<File>((.:)?[^:\n\r]*?))") + "$";
DeferredResponseFileRegex = new Regex(deferredResponseFile, RegexOptions.Compiled | RegexOptions.Singleline);
MetaprojectGenerated = GetString("MetaprojectGenerated");
string messageMetaprojectGeneratedString = MetaprojectGenerated.Replace(@"{0}", @"(?<File>((.:)?[^:\n\r]*?))");
MessageMetaprojectGenerated = new Regex(messageMetaprojectGeneratedString, RegexOptions.Compiled | RegexOptions.Singleline);
string taskFoundFromFactory = GetString("TaskFoundFromFactory")
.Replace(@"""{0}""", @"\""(?<task>.+)\""")
.Replace(@"""{1}""", @"\""(?<assembly>.+)\""");
TaskFoundFromFactory = new Regex("^" + taskFoundFromFactory, RegexOptions.Compiled);
string taskFound = GetString("TaskFound")
.Replace(@"""{0}""", @"\""(?<task>.+)\""")
.Replace(@"""{1}""", @"\""(?<assembly>.+)\""");
TaskFound = new Regex("^" + taskFound, RegexOptions.Compiled);
ProjectImportSkippedFalseCondition = GetString("ProjectImportSkippedFalseCondition");
string skippedFalseCondition = "^" + ProjectImportSkippedFalseCondition
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)")
.Replace("{4}", "(?<Reason>.+)")
.Replace("{5}", "(?<Evaluated>.+)");
ProjectImportSkippedFalseConditionRegex = new Regex(skippedFalseCondition, RegexOptions.Compiled);
CouldNotResolveSdk = GetString("CouldNotResolveSdk");
CouldNotResolveSdkRegex = new Regex("^" + CouldNotResolveSdk
.Replace("{0}", @"(?<Sdk>[^\""]+)"), RegexOptions.Compiled);
ProjectImportSkippedExpressionEvaluatedToEmpty = GetString("ProjectImportSkippedExpressionEvaluatedToEmpty");
string emptyCondition = "^" + ProjectImportSkippedExpressionEvaluatedToEmpty
.Replace(".", "\\.")
.Replace("{0}", @"(?<ImportedProject>[^\""]+)")
.Replace("{1}", @"(?<File>[^\""]+)")
.Replace("({2},{3})", @"\((?<Line>\d+),(?<Column>\d+)\)");
ProjectImportSkippedExpressionEvaluatedToEmptyRegex = new Regex(emptyCondition, RegexOptions.Compiled);
ConflictReferenceSameSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictReferenceSameSDK"), 3);
ConflictRedistDifferentSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictRedistDifferentSDK"), 5);
ConflictReferenceDifferentSDK = CreateRegex(GetString("GetSDKReferenceFiles.ConflictRedistDifferentSDK"), 4);
ConflictFoundRegex = new Regex(Escape(GetString("ResolveAssemblyReference.ConflictFound"))
.Replace(@"\{0}", ".*?")
.Replace(@"\{1}", ".*?")
+ ".*", RegexOptions.Compiled);
var foundConflictsRaw = GetString("ResolveAssemblyReference.FoundConflicts");
if (foundConflictsRaw.StartsWith("MSB3277: "))
{
foundConflictsRaw = foundConflictsRaw.Substring("MSB3277: ".Length);
}
var foundConflictsNormalized = foundConflictsRaw.NormalizeLineBreaks();
var foundConflictsEscaped = Escape(foundConflictsNormalized);
FoundConflictsRegex = new Regex(foundConflictsEscaped
.Replace(@"\{0}", @"(?<Assembly>[^\""]*)")
.Replace(@"\{1}", @"(?<Details>.*)"), RegexOptions.Compiled | RegexOptions.Singleline);
TaskParameterMessagePrefix = GetString("TaskParameterPrefix");
OutputItemsMessagePrefix = GetString("OutputItemParameterMessagePrefix");
ItemGroupIncludeMessagePrefix = GetString("ItemGroupIncludeLogMessagePrefix");
ItemGroupRemoveMessagePrefix = GetString("ItemGroupRemoveLogMessage");
GlobalPropertiesPrefix = GetString("General.GlobalProperties");
RemovingPropertiesPrefix = GetString("General.UndefineProperties");
EvaluationStarted = GetString("EvaluationStarted");
EvaluationFinished = GetString("EvaluationFinished");
}