diff --git a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs index f9b3b42bde6..376c3e246cf 100644 --- a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs +++ b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs @@ -670,6 +670,7 @@ public void LogPropertyAssignments() string testtargets = ObjectModelHelpers.CleanupFileContents(@" + FinalValue OldValue NewValue @@ -682,22 +683,35 @@ public void LogPropertyAssignments() string testTargetPath = Path.Combine(targetDirectory, "test.proj"); bool originalValue = BuildParameters.WarnOnUninitializedProperty; + + string oldEnvironmentValue = Environment.GetEnvironmentVariable("GlobalProp"); + try { + Environment.SetEnvironmentVariable("GlobalProp", "EnvironmentValue"); + BuildParameters.WarnOnUninitializedProperty = true; Directory.CreateDirectory(targetDirectory); File.WriteAllText(testTargetPath, testtargets); MockLogger logger = new MockLogger(); logger.Verbosity = LoggerVerbosity.Diagnostic; - ProjectCollection pc = new ProjectCollection(); + ProjectCollection pc = new ProjectCollection(new Dictionary + { + ["GlobalProp"] = "GlobalValue" + }); pc.RegisterLogger(logger); Project project = pc.LoadProject(testTargetPath); bool result = project.Build(); Assert.True(result); logger.AssertLogContains("Evaluation started"); - logger.AssertLogContains("Property reassignment"); + logger.AssertLogContains("Property initial value: $(GlobalProp)=\"EnvironmentValue\" Source: Environment"); + logger.AssertLogContains("Property reassignment: $(GlobalProp)=\"GlobalValue\" (previous value: \"EnvironmentValue\") Source: Global"); + logger.AssertLogContains("The \"GlobalProp\" property is a global property, and cannot be modified."); + logger.AssertLogContains($"Property initial value: $(Prop)=\"OldValue\" Source: {testTargetPath}"); + logger.AssertLogContains($"Property reassignment: $(Prop)=\"NewValue\" (previous value: \"OldValue\") Source: {testTargetPath}"); + logger.AssertLogContains($"Property initial value: $(VisualStudioVersion)=\"{MSBuildConstants.CurrentVisualStudioVersion}\" Source: Toolset"); logger.AssertLogContains("Evaluation finished"); logger.AssertLogContains("Prop"); logger.AssertLogContains("OldValue"); @@ -707,6 +721,7 @@ public void LogPropertyAssignments() { BuildParameters.WarnOnUninitializedProperty = originalValue; FileUtilities.DeleteWithoutTrailingBackslash(targetDirectory, true); + Environment.SetEnvironmentVariable("GlobalProp", oldEnvironmentValue); } } @@ -4388,10 +4403,10 @@ public void ThrownInvalidProjectExceptionProperlyHandled() File.WriteAllText(primaryProject, projectContents); File.WriteAllText(import, importContents); - InvalidProjectFileException ex = Assert.Throws( () => - { - Project unused = new Project(primaryProject, null, null); - }) + InvalidProjectFileException ex = Assert.Throws(() => + { + Project unused = new Project(primaryProject, null, null); + }) ; Assert.Contains("", ex.Message); diff --git a/src/Build/Evaluation/Evaluator.cs b/src/Build/Evaluation/Evaluator.cs index 666338f2406..bcebaddfa19 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -151,7 +151,7 @@ internal class Evaluator /// The current build submission ID. /// private readonly int _submissionId; - + private readonly EvaluationContext _evaluationContext; /// @@ -604,11 +604,23 @@ private static ProjectTargetInstance ReadNewTargetElement(ProjectTargetElement t /// private void Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext) { - string projectFile; + string projectFile = String.IsNullOrEmpty(_projectRootElement.ProjectFileLocation.File) ? "(null)" : _projectRootElement.ProjectFileLocation.File; + using (_evaluationProfiler.TrackPass(EvaluationPass.TotalEvaluation)) { ErrorUtilities.VerifyThrow(_data.EvaluationId == BuildEventContext.InvalidEvaluationId, "There is no prior evaluation ID. The evaluator data needs to be reset at this point"); + _evaluationLoggingContext = new EvaluationLoggingContext(loggingService, buildEventContext, projectFile); + _data.EvaluationId = _evaluationLoggingContext.BuildEventContext.EvaluationId; + +#if (!STANDALONEBUILD) + CodeMarkers.Instance.CodeMarker(CodeMarkerEvent.perfMSBuildProjectEvaluatePass0End); +#endif + + _evaluationLoggingContext.LogProjectEvaluationStarted(); + + ErrorUtilities.VerifyThrow(_data.EvaluationId != BuildEventContext.InvalidEvaluationId, "Evaluation should produce an evaluation ID"); + _logProjectImportedEvents = Traits.Instance.EscapeHatches.LogProjectImports; ICollection

builtInProperties; @@ -631,18 +643,6 @@ private void Evaluate(ILoggingService loggingService, BuildEventContext buildEve } } -#if (!STANDALONEBUILD) - CodeMarkers.Instance.CodeMarker(CodeMarkerEvent.perfMSBuildProjectEvaluatePass0End); -#endif - projectFile = String.IsNullOrEmpty(_projectRootElement.ProjectFileLocation.File) ? "(null)" : _projectRootElement.ProjectFileLocation.File; - - _evaluationLoggingContext = new EvaluationLoggingContext(loggingService, buildEventContext, projectFile); - _data.EvaluationId = _evaluationLoggingContext.BuildEventContext.EvaluationId; - - _evaluationLoggingContext.LogProjectEvaluationStarted(); - - ErrorUtilities.VerifyThrow(_data.EvaluationId != BuildEventContext.InvalidEvaluationId, "Evaluation should produce an evaluation ID"); - #if MSBUILDENABLEVSPROFILING string endPass0 = String.Format(CultureInfo.CurrentCulture, "Evaluate Project {0} - End Pass 0 (Initial properties)", projectFile); DataCollection.CommentMarkProfile(8816, endPass0); @@ -1009,7 +1009,7 @@ private void UpdateDefaultTargets(ProjectRootElement currentProjectOrImport) private void EvaluatePropertyGroupElement(ProjectPropertyGroupElement propertyGroupElement) { using (_evaluationProfiler.TrackElement(propertyGroupElement)) - { + { if (EvaluateConditionCollectingConditionedProperties(propertyGroupElement, ExpanderOptions.ExpandProperties, ParserOptions.AllowProperties)) { foreach (ProjectPropertyElement propertyElement in propertyGroupElement.Properties) @@ -1256,8 +1256,10 @@ private ICollection

AddEnvironmentProperties() foreach (ProjectPropertyInstance environmentProperty in _environmentProperties) { + P predecessor = _data.GetProperty(environmentProperty.Name); P property = _data.SetProperty(environmentProperty.Name, ((IProperty)environmentProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); environmentPropertiesList.Add(property); + LogPropertyAssignment(predecessor, property, PropertySources.Environment); } return environmentPropertiesList; @@ -1272,7 +1274,7 @@ private ICollection

AddToolsetProperties() foreach (ProjectPropertyInstance toolsetProperty in _data.Toolset.Properties.Values) { - P property = _data.SetProperty(toolsetProperty.Name, ((IProperty)toolsetProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); + P property = SetProperty(PropertySources.Toolset, toolsetProperty); toolsetProperties.Add(property); } @@ -1282,8 +1284,8 @@ private ICollection

AddToolsetProperties() // is most likely not a subtoolset now, we need to add VisualStudioVersion if its not already a property. if (!_data.Properties.Contains(Constants.VisualStudioVersionPropertyName)) { - P subToolsetVersionProperty = _data.SetProperty(Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion, false /* NOT global property */, false /* may NOT be a reserved name */); - toolsetProperties.Add(subToolsetVersionProperty); + P property = SetProperty(PropertySources.Toolset, Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion); + toolsetProperties.Add(property); } } else @@ -1295,15 +1297,15 @@ private ICollection

AddToolsetProperties() // set the property even if there is no matching sub-toolset. if (!_data.Properties.Contains(Constants.SubToolsetVersionPropertyName)) { - P subToolsetVersionProperty = _data.SetProperty(Constants.SubToolsetVersionPropertyName, _data.SubToolsetVersion, false /* NOT global property */, false /* may NOT be a reserved name */); - toolsetProperties.Add(subToolsetVersionProperty); + P property = SetProperty(PropertySources.Toolset, Constants.SubToolsetVersionPropertyName, _data.SubToolsetVersion); + toolsetProperties.Add(property); } if (_data.Toolset.SubToolsets.TryGetValue(_data.SubToolsetVersion, out subToolset)) { foreach (ProjectPropertyInstance subToolsetProperty in subToolset.Properties.Values) { - P property = _data.SetProperty(subToolsetProperty.Name, ((IProperty)subToolsetProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); + P property = SetProperty(PropertySources.Toolset, subToolsetProperty); toolsetProperties.Add(property); } } @@ -1326,7 +1328,7 @@ private ICollection

AddGlobalProperties() foreach (ProjectPropertyInstance globalProperty in _data.GlobalPropertiesDictionary) { - P property = _data.SetProperty(globalProperty.Name, ((IProperty)globalProperty).EvaluatedValueEscaped, true /* IS global property */, false /* may NOT be a reserved name */); + P property = SetProperty(PropertySources.Global, globalProperty, isGlobalProperty: true); globalProperties.Add(property); } @@ -1397,19 +1399,52 @@ private void EvaluatePropertyElement(ProjectPropertyElement propertyElement) P property = _data.SetProperty(propertyElement, evaluatedValue, predecessor); - if (predecessor != null) + if (!_evaluationLoggingContext.LoggingService.OnlyLogCriticalEvents) { - LogPropertyReassignment(predecessor, property, propertyElement.Location.LocationString); + LogPropertyAssignment(predecessor, property, propertyElement.Location.LocationString); } } } - private void LogPropertyReassignment(P predecessor, P property, string location) + private P SetProperty(string propertySource, ProjectPropertyInstance propertyInstance, bool isGlobalProperty = false, bool mayBeReserved = false) + { + string propertyName = propertyInstance.Name; + string propertyValue = ((IProperty)propertyInstance).EvaluatedValueEscaped; + return SetProperty(propertySource, propertyName, propertyValue, predecessor: null, isGlobalProperty, mayBeReserved); + } + + private P SetProperty(string propertySource, string propertyName, string propertyValue, P predecessor = null, bool isGlobalProperty = false, bool mayBeReserved = false) + { + if (predecessor == null && !_evaluationLoggingContext.LoggingService.OnlyLogCriticalEvents) + { + predecessor = _data.GetProperty(propertyName); + } + + P property = _data.SetProperty(propertyName, propertyValue, isGlobalProperty, mayBeReserved); + + if (!_evaluationLoggingContext.LoggingService.OnlyLogCriticalEvents) + { + LogPropertyAssignment(predecessor, property, propertySource); + } + + return property; + } + + private void LogPropertyAssignment(P predecessor, P property, string location) { string newValue = property.EvaluatedValue; - string oldValue = predecessor.EvaluatedValue; + string oldValue = predecessor?.EvaluatedValue; - if (newValue != oldValue) + if (oldValue == null) + { + _evaluationLoggingContext.LogComment( + MessageImportance.Low, + "PropertyAssignment", + property.Name, + newValue, + location); + } + else if (newValue != oldValue) { _evaluationLoggingContext.LogComment( MessageImportance.Low, @@ -1755,7 +1790,7 @@ private void EvaluateImportElement(string directoryOfImportingFile, ProjectImpor foreach (ProjectRootElement importedProjectRootElement in importedProjectRootElements) { _data.RecordImport(importElement, importedProjectRootElement, importedProjectRootElement.Version, sdkResult); - + PerformDepthFirstPass(importedProjectRootElement); } } @@ -1923,7 +1958,7 @@ private List ExpandAndLoadImports(string directoryOfImportin var pathsToSearch = new string[fallbackSearchPathMatch.SearchPaths.Count + 1]; pathsToSearch[0] = prop?.EvaluatedValue; // The actual value of the property, with no fallbacks fallbackSearchPathMatch.SearchPaths.CopyTo(pathsToSearch, 1); // The list of fallbacks, in order - + string extensionPropertyRefAsString = fallbackSearchPathMatch.MsBuildPropertyFormat; _evaluationLoggingContext.LogComment(MessageImportance.Low, "SearchPathsForMSBuildExtensionsPath", @@ -2422,7 +2457,7 @@ private LoadImportsResult ExpandAndLoadImportsFromUnescapedImportExpression(stri // can store the unescaped value. The only purpose of escaping is to // avoid undesired splitting or expansion. _importsSeen.Add(importFileUnescaped, importElement); - } + } } if (imports.Count > 0) @@ -2677,20 +2712,22 @@ private void SetAllProjectsProperty() { P oldValue = _data.GetProperty(Constants.MSBuildAllProjectsPropertyName); - P newValue = _data.SetProperty( + SetProperty( + propertySource: string.Empty, Constants.MSBuildAllProjectsPropertyName, oldValue == null ? _lastModifiedProject.FullPath : $"{_lastModifiedProject.FullPath};{oldValue.EvaluatedValue}", - isGlobalProperty: false, - mayBeReserved: false); - - if (oldValue != null) - { - LogPropertyReassignment(oldValue, newValue, String.Empty); - } + oldValue); } } + + private static class PropertySources + { + public const string Environment = nameof(Environment); + public const string Toolset = nameof(Toolset); + public const string Global = nameof(Global); + } } ///

diff --git a/src/Build/Resources/Strings.resx b/src/Build/Resources/Strings.resx index d6eb5b80233..2f8085ed7c3 100644 --- a/src/Build/Resources/Strings.resx +++ b/src/Build/Resources/Strings.resx @@ -740,6 +740,9 @@ MSB4192: The project file "{0}" is in the ".vcproj" file format, which MSBuild no longer supports. Please convert the project by opening it in the Visual Studio IDE or running the conversion tool, or use MSBuild 3.5 or earlier to build it. {StrBegin="MSB4192: "} LOC: ".vcproj" should not be localized + + Property initial value: $({0})="{1}" Source: {2} + Initial Properties: @@ -748,7 +751,7 @@ {StrBegin="MSB4148: "} - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} MSB4043: The item metadata reference "{0}" is invalid because it is qualified with an item name. Item metadata referenced in transforms do not need to be qualified, because the item name is automatically deduced from the items being transformed. Change "{0}" to "%({1})". diff --git a/src/Build/Resources/xlf/Strings.cs.xlf b/src/Build/Resources/xlf/Strings.cs.xlf index 9ca09527345..4806e262bf9 100644 --- a/src/Build/Resources/xlf/Strings.cs.xlf +++ b/src/Build/Resources/xlf/Strings.cs.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: Úloha MSBuild sestavuje projekty {0}, které nejsou zadané v položce ProjectReference. V izolovaných sestaveních to pravděpodobně znamená, že tyto odkazy nejsou v {1} explicitně zadané jako položka ProjectReference. @@ -2091,8 +2096,8 @@ Využití: Průměrné využití {0}: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Opětovné přiřazení vlastnosti: $({0})={1} (předchozí hodnota: {2}) v {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Opětovné přiřazení vlastnosti: $({0})={1} (předchozí hodnota: {2}) v {3} diff --git a/src/Build/Resources/xlf/Strings.de.xlf b/src/Build/Resources/xlf/Strings.de.xlf index cdb6b09e0ed..6e7d7ad9094 100644 --- a/src/Build/Resources/xlf/Strings.de.xlf +++ b/src/Build/Resources/xlf/Strings.de.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: Mit der MSBuild-Aufgabe werden die Projekte "{0}" erstellt, die nicht im ProjectReference-Element angegeben wurden. In isolierten Builds bedeutet dies wahrscheinlich, dass der Verweis nicht explizit als ProjectReference-Element in "{1}" angegeben wurde. @@ -2091,8 +2096,8 @@ Auslastung: {0} Durchschnittliche Auslastung: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Neuzuweisung der Eigenschaft: $({0})="{1}" (vorheriger Wert: "{2}") unter {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Neuzuweisung der Eigenschaft: $({0})="{1}" (vorheriger Wert: "{2}") unter {3} diff --git a/src/Build/Resources/xlf/Strings.en.xlf b/src/Build/Resources/xlf/Strings.en.xlf index ab7dba885fe..4177e60d9c4 100644 --- a/src/Build/Resources/xlf/Strings.en.xlf +++ b/src/Build/Resources/xlf/Strings.en.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" @@ -978,8 +983,8 @@ {StrBegin="MSB4148: "} - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} diff --git a/src/Build/Resources/xlf/Strings.es.xlf b/src/Build/Resources/xlf/Strings.es.xlf index 9b160fe7b32..017d00b5f68 100644 --- a/src/Build/Resources/xlf/Strings.es.xlf +++ b/src/Build/Resources/xlf/Strings.es.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: La tarea MSBuild está compilando proyectos {0} que no se especifican en el elemento ProjectReference. En compilaciones aisladas, esto significa probablemente que las referencias no se especifican explícitamente como un elemento ProjectReference en "{1}" @@ -2091,8 +2096,8 @@ Utilización: Utilización media de {0}: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Reasignación de propiedad: $({0})="{1}" (valor anterior: "{2}") en {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Reasignación de propiedad: $({0})="{1}" (valor anterior: "{2}") en {3} diff --git a/src/Build/Resources/xlf/Strings.fr.xlf b/src/Build/Resources/xlf/Strings.fr.xlf index 8a359938e39..bd0f3f11bcc 100644 --- a/src/Build/Resources/xlf/Strings.fr.xlf +++ b/src/Build/Resources/xlf/Strings.fr.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: La tâche MSBuild génère un ou des projets {0} qui ne sont pas spécifiés dans l'élément ProjectReference. Dans les builds isolées, cela signifie probablement que les références ne sont pas explicitement spécifiées en tant qu'élément ProjectReference dans "{1}" @@ -2090,8 +2095,8 @@ Utilisation : {0} Utilisation moyenne : {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Réassignation de propriété : $({0})="{1}" (valeur précédente : "{2}") à {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Réassignation de propriété : $({0})="{1}" (valeur précédente : "{2}") à {3} diff --git a/src/Build/Resources/xlf/Strings.it.xlf b/src/Build/Resources/xlf/Strings.it.xlf index b87c25e9bd7..c58b4f8a0c1 100644 --- a/src/Build/Resources/xlf/Strings.it.xlf +++ b/src/Build/Resources/xlf/Strings.it.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: il task MSBuild compila progetti {0} che non sono specificati nell'elemento ProjectReference. Nelle compilazioni isolate questa condizione indica probabilmente che i riferimenti non sono specificati in modo esplicito come elemento ProjectReference in "{1}" @@ -2091,8 +2096,8 @@ Utilizzo: {0} Utilizzo medio: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Riassegnazione della proprietà: $({0})="{1}" (valore precedente: "{2}") in {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Riassegnazione della proprietà: $({0})="{1}" (valore precedente: "{2}") in {3} diff --git a/src/Build/Resources/xlf/Strings.ja.xlf b/src/Build/Resources/xlf/Strings.ja.xlf index b483249ce16..982ddb7e6b4 100644 --- a/src/Build/Resources/xlf/Strings.ja.xlf +++ b/src/Build/Resources/xlf/Strings.ja.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: ProjectReference 項目で指定されていないプロジェクト {0} が MSBuild タスクによってビルドされています。分離されたビルドでは、これは多くの場合、参照が "{1}" で ProjectReference 項目として明示的に指定されていないことを意味します @@ -2091,8 +2096,8 @@ Utilization: {0} Average Utilization: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - プロパティの再割り当て: $({0})="{1}" (以前の値: "{2}") {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + プロパティの再割り当て: $({0})="{1}" (以前の値: "{2}") {3} diff --git a/src/Build/Resources/xlf/Strings.ko.xlf b/src/Build/Resources/xlf/Strings.ko.xlf index 5e94815fe58..d6175ea9947 100644 --- a/src/Build/Resources/xlf/Strings.ko.xlf +++ b/src/Build/Resources/xlf/Strings.ko.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: MSBuild 작업이 ProjectReference 항목에 지정되지 않은 {0} 프로젝트를 빌드하고 있습니다. 격리된 빌드에서 이는 참조가 "{1}"에서 ProjectReference 항목으로 명시적으로 지정되지 않았음을 의미할 수 있습니다. @@ -2091,8 +2096,8 @@ Utilization: {0} Average Utilization: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - 속성 재할당: $({0})={3}의 "{1}"(이전 값: "{2}") + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + 속성 재할당: $({0})={3}의 "{1}"(이전 값: "{2}") diff --git a/src/Build/Resources/xlf/Strings.pl.xlf b/src/Build/Resources/xlf/Strings.pl.xlf index 75599e0a92d..85d29116526 100644 --- a/src/Build/Resources/xlf/Strings.pl.xlf +++ b/src/Build/Resources/xlf/Strings.pl.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: Zadanie programu MSBuild kompiluje projekty {0}, które nie są określone w elemencie ProjectReference. W przypadku kompilacji izolowanych prawdopodobnie oznacza to, że odwołania nie zostały jawnie określone jako element ProjectReference w pliku „{1}” @@ -2091,8 +2096,8 @@ Wykorzystanie: Średnie wykorzystanie {0}: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Ponowny przydział właściwości: $({0})=„{1}” (poprzednia wartość: „{2}”) w {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Ponowny przydział właściwości: $({0})=„{1}” (poprzednia wartość: „{2}”) w {3} diff --git a/src/Build/Resources/xlf/Strings.pt-BR.xlf b/src/Build/Resources/xlf/Strings.pt-BR.xlf index 4b7986e72f2..d86a1f32e14 100644 --- a/src/Build/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Build/Resources/xlf/Strings.pt-BR.xlf @@ -107,6 +107,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: A tarefa MSBuild está compilando projetos {0} que não estão especificados no item ProjectReference. Em builds isolados, isso provavelmente significa que as referências não são especificadas de forma explícita como um item de ProjectReference em "{1}" @@ -2090,8 +2095,8 @@ Utilização: {0} Utilização Média: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Reatribuição de propriedade: $({0})="{1}" (valor anterior: "{2}") em {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Reatribuição de propriedade: $({0})="{1}" (valor anterior: "{2}") em {3} diff --git a/src/Build/Resources/xlf/Strings.ru.xlf b/src/Build/Resources/xlf/Strings.ru.xlf index 94d5c15672e..ef0c28dae94 100644 --- a/src/Build/Resources/xlf/Strings.ru.xlf +++ b/src/Build/Resources/xlf/Strings.ru.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: задача MSBuild собирает проект(ы) {0}, которые не указаны в элементе ProjectReference. В изолированных сборках это может означать, что ссылки явно не указаны как элемент ProjectReference в "{1}" @@ -2091,8 +2096,8 @@ Utilization: {0} Average Utilization: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Повторное назначение свойства: $({0})="{1}" (предыдущее значение: "{2}") для {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Повторное назначение свойства: $({0})="{1}" (предыдущее значение: "{2}") для {3} diff --git a/src/Build/Resources/xlf/Strings.tr.xlf b/src/Build/Resources/xlf/Strings.tr.xlf index 7531de0ee21..ef6433087ea 100644 --- a/src/Build/Resources/xlf/Strings.tr.xlf +++ b/src/Build/Resources/xlf/Strings.tr.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: MSBuild görevi, ProjectReference öğesinde belirtilmeyen {0} projesini derliyor. Yalıtılmış derlemelerde bu genellikle başvuruların "{1}" içinde açıkça ProjectReference öğesi olarak belirtilmediği anlamına gelir @@ -2091,8 +2096,8 @@ Kullanım: {0} Ortalama Kullanım: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - Özellik yeniden ataması: $({0})="{1}" (önceki değer: "{2}") konum: {3} + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + Özellik yeniden ataması: $({0})="{1}" (önceki değer: "{2}") konum: {3} diff --git a/src/Build/Resources/xlf/Strings.zh-Hans.xlf b/src/Build/Resources/xlf/Strings.zh-Hans.xlf index 5e010b67874..2d17625dc45 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hans.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: MSBuild 任务正在生成未在 ProjectReference 项中指定的 {0} 项目。在独立生成中,这可能表示未将引用显式地指定为“{1}”中的 ProjectReference 项 @@ -2090,8 +2095,8 @@ Utilization: {0} Average Utilization: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - 在 {3} 处重新分配属性: $({0})=“{1}”(先前值:“{2}”) + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + 在 {3} 处重新分配属性: $({0})=“{1}”(先前值:“{2}”) diff --git a/src/Build/Resources/xlf/Strings.zh-Hant.xlf b/src/Build/Resources/xlf/Strings.zh-Hant.xlf index bbf99c95405..ec93c8829d1 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hant.xlf @@ -108,6 +108,11 @@ LOCALIZATION: Do not localize the following words: ProjectGraph, ProjectReference, ToolsVersion. + + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} + + MSB4254: The MSBuild task is building project(s) {0} which are not specified in the ProjectReference item. In isolated builds this probably means that the references are not explicitly specified as a ProjectReference item in "{1}" MSB4254: MSBuild 工作建置的專案 {0} 未在 ProjectReference 項目中指定。在隔離式組建中,這可能代表未在 "{1}" 中將該參考明確指定為 ProjectReference 項目 @@ -2091,8 +2096,8 @@ Utilization: {0} Average Utilization: {1:###.0} {StrBegin="MSB4232: "} Target, Include, Update, and Remove should not be localized and their casing should not be changed - Property reassignment: $({0})="{1}" (previous value: "{2}") at {3} - 屬性指派: $({0})="{1}" (舊值: "{2}") (位於 {3}) + Property reassignment: $({0})="{1}" (previous value: "{2}") Source: {3} + 屬性指派: $({0})="{1}" (舊值: "{2}") (位於 {3})