From 3d55bd2c762c7d8bb2781e8acc618ffde26c763a Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Thu, 21 Feb 2019 15:00:50 +0200 Subject: [PATCH 1/6] Log properties initial value --- .../Evaluation/Evaluator_Tests.cs | 1 + src/Build/Evaluation/Evaluator.cs | 35 ++++++++++--------- src/Build/Resources/Strings.resx | 3 ++ src/Build/Resources/xlf/Strings.cs.xlf | 5 +++ src/Build/Resources/xlf/Strings.de.xlf | 5 +++ src/Build/Resources/xlf/Strings.en.xlf | 5 +++ src/Build/Resources/xlf/Strings.es.xlf | 5 +++ src/Build/Resources/xlf/Strings.fr.xlf | 5 +++ src/Build/Resources/xlf/Strings.it.xlf | 5 +++ src/Build/Resources/xlf/Strings.ja.xlf | 5 +++ src/Build/Resources/xlf/Strings.ko.xlf | 5 +++ src/Build/Resources/xlf/Strings.pl.xlf | 5 +++ src/Build/Resources/xlf/Strings.pt-BR.xlf | 5 +++ src/Build/Resources/xlf/Strings.ru.xlf | 5 +++ src/Build/Resources/xlf/Strings.tr.xlf | 5 +++ src/Build/Resources/xlf/Strings.zh-Hans.xlf | 5 +++ src/Build/Resources/xlf/Strings.zh-Hant.xlf | 5 +++ 17 files changed, 93 insertions(+), 16 deletions(-) diff --git a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs index d9c13ea9f68..62ae5757484 100644 --- a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs +++ b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs @@ -697,6 +697,7 @@ public void LogPropertyAssignments() bool result = project.Build(); Assert.Equal(true, result); logger.AssertLogContains("Evaluation started"); + logger.AssertLogContains("Property initial value"); logger.AssertLogContains("Property reassignment"); logger.AssertLogContains("Evaluation finished"); logger.AssertLogContains("Prop"); diff --git a/src/Build/Evaluation/Evaluator.cs b/src/Build/Evaluation/Evaluator.cs index c10da750ab0..5872cbbe1ed 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -172,7 +172,7 @@ internal class Evaluator /// The current build submission ID. /// private readonly int _submissionId; - + private readonly EvaluationContext _evaluationContext; /// @@ -1097,7 +1097,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) @@ -1484,19 +1484,25 @@ private void EvaluatePropertyElement(ProjectPropertyElement propertyElement) P property = _data.SetProperty(propertyElement, evaluatedValue, predecessor); - if (predecessor != null) - { - LogPropertyReassignment(predecessor, property, propertyElement.Location.LocationString); - } + LogPropertyAssignment(predecessor, property, propertyElement.Location.LocationString); } } - private void LogPropertyReassignment(P predecessor, P property, string location) + 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, @@ -1842,7 +1848,7 @@ private void EvaluateImportElement(string directoryOfImportingFile, ProjectImpor foreach (ProjectRootElement importedProjectRootElement in importedProjectRootElements) { _data.RecordImport(importElement, importedProjectRootElement, importedProjectRootElement.Version, sdkResult); - + PerformDepthFirstPass(importedProjectRootElement); } } @@ -2010,7 +2016,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", @@ -2509,7 +2515,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) @@ -2772,10 +2778,7 @@ private void SetAllProjectsProperty() isGlobalProperty: false, mayBeReserved: false); - if (oldValue != null) - { - LogPropertyReassignment(oldValue, newValue, String.Empty); - } + LogPropertyAssignment(oldValue, newValue, String.Empty); } } } diff --git a/src/Build/Resources/Strings.resx b/src/Build/Resources/Strings.resx index b535ebdcfa9..ac78c9ab86e 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}" at {2} + Initial Properties: diff --git a/src/Build/Resources/xlf/Strings.cs.xlf b/src/Build/Resources/xlf/Strings.cs.xlf index b2c8eef593c..ca07d8c6d0e 100644 --- a/src/Build/Resources/xlf/Strings.cs.xlf +++ b/src/Build/Resources/xlf/Strings.cs.xlf @@ -48,6 +48,11 @@ Operaci nelze dokončit, protože funkce BeginBuild ještě nebyla zavolána. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Operaci nelze dokončit, protože funkce EndBuild již byla zavolána, ale existující odeslání ještě nebyla dokončena. diff --git a/src/Build/Resources/xlf/Strings.de.xlf b/src/Build/Resources/xlf/Strings.de.xlf index e7a9b517e80..4e8b2f8774b 100644 --- a/src/Build/Resources/xlf/Strings.de.xlf +++ b/src/Build/Resources/xlf/Strings.de.xlf @@ -48,6 +48,11 @@ Der Vorgang kann nicht abgeschlossen werden, da BeginBuild noch nicht aufgerufen wurde. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Der Vorgang kann nicht abgeschlossen werden, da EndBuild bereits aufgerufen wurde, vorhandene Übermittlungen jedoch noch nicht abgeschlossen wurden. diff --git a/src/Build/Resources/xlf/Strings.en.xlf b/src/Build/Resources/xlf/Strings.en.xlf index b7edff08015..20e0bf8a923 100644 --- a/src/Build/Resources/xlf/Strings.en.xlf +++ b/src/Build/Resources/xlf/Strings.en.xlf @@ -48,6 +48,11 @@ The operation cannot be completed because BeginBuild has not yet been called. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. diff --git a/src/Build/Resources/xlf/Strings.es.xlf b/src/Build/Resources/xlf/Strings.es.xlf index 84be3cca9ac..0d3ad9e5e99 100644 --- a/src/Build/Resources/xlf/Strings.es.xlf +++ b/src/Build/Resources/xlf/Strings.es.xlf @@ -48,6 +48,11 @@ La operación no se puede completar porque todavía no se llamó a BeginBuild. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. No se puede completar la operación porque ya se ha llamado a EndBuild pero aún no se han completado los envíos existentes. diff --git a/src/Build/Resources/xlf/Strings.fr.xlf b/src/Build/Resources/xlf/Strings.fr.xlf index eb6fa1e6eb9..f76ddba6fa2 100644 --- a/src/Build/Resources/xlf/Strings.fr.xlf +++ b/src/Build/Resources/xlf/Strings.fr.xlf @@ -48,6 +48,11 @@ Impossible d'effectuer l'opération car la méthode BeginBuild n'a pas encore été appelée. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Impossible d'effectuer l'opération car la méthode EndBuild a déjà été appelée, mais les soumissions existantes ne sont pas encore terminées. diff --git a/src/Build/Resources/xlf/Strings.it.xlf b/src/Build/Resources/xlf/Strings.it.xlf index 522b5d2332b..fc3075a9cce 100644 --- a/src/Build/Resources/xlf/Strings.it.xlf +++ b/src/Build/Resources/xlf/Strings.it.xlf @@ -48,6 +48,11 @@ Non è possibile completare l'operazione perché BeginBuild non è stato ancora chiamato. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Non è possibile completare l'operazione perché EndBuild è già stato chiamato ma gli invii esistenti non sono stati ancora completati. diff --git a/src/Build/Resources/xlf/Strings.ja.xlf b/src/Build/Resources/xlf/Strings.ja.xlf index 031193f4bf7..b113ea92038 100644 --- a/src/Build/Resources/xlf/Strings.ja.xlf +++ b/src/Build/Resources/xlf/Strings.ja.xlf @@ -48,6 +48,11 @@ BeginBuild がまだ呼び出されていないため、操作を完了できません。 + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. EndBuild は既に呼び出されていますが、既存の送信がまだ完了していないため、操作を完了できません。 diff --git a/src/Build/Resources/xlf/Strings.ko.xlf b/src/Build/Resources/xlf/Strings.ko.xlf index e89bb24f9ba..07abe7a183f 100644 --- a/src/Build/Resources/xlf/Strings.ko.xlf +++ b/src/Build/Resources/xlf/Strings.ko.xlf @@ -48,6 +48,11 @@ BeginBuild가 아직 호출되지 않았으므로 작업을 완료할 수 없습니다. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. EndBuild가 이미 호출되었지만 기존 전송이 아직 완료되지 않았으므로 작업을 완료할 수 없습니다. diff --git a/src/Build/Resources/xlf/Strings.pl.xlf b/src/Build/Resources/xlf/Strings.pl.xlf index cb6f056f84c..7ed47fc1ff8 100644 --- a/src/Build/Resources/xlf/Strings.pl.xlf +++ b/src/Build/Resources/xlf/Strings.pl.xlf @@ -48,6 +48,11 @@ Nie można zakończyć operacji, ponieważ metoda BeginBuild nie została jeszcze wywołana. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Nie można zakończyć operacji, ponieważ metoda EndBuild została już wywołana, ale istniejące przesyłania nie zostały jeszcze zakończone. diff --git a/src/Build/Resources/xlf/Strings.pt-BR.xlf b/src/Build/Resources/xlf/Strings.pt-BR.xlf index 1af810128af..8692579bc64 100644 --- a/src/Build/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Build/Resources/xlf/Strings.pt-BR.xlf @@ -48,6 +48,11 @@ A operação não pode ser concluída porque BeginBuild ainda não foi chamado. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. A operação não pode ser concluída porque EndBuild já foi chamado, mas os envios existentes ainda não foram concluídos. diff --git a/src/Build/Resources/xlf/Strings.ru.xlf b/src/Build/Resources/xlf/Strings.ru.xlf index 78eade85e5b..b6b1869f8d3 100644 --- a/src/Build/Resources/xlf/Strings.ru.xlf +++ b/src/Build/Resources/xlf/Strings.ru.xlf @@ -48,6 +48,11 @@ Не удается завершить операцию, так как ещё не был вызван BeginBuild. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. Не удается выполнить операцию. Метод EndBuild уже вызван, однако передача данных пока не завершена. diff --git a/src/Build/Resources/xlf/Strings.tr.xlf b/src/Build/Resources/xlf/Strings.tr.xlf index ecb607bca1c..c5104540efd 100644 --- a/src/Build/Resources/xlf/Strings.tr.xlf +++ b/src/Build/Resources/xlf/Strings.tr.xlf @@ -48,6 +48,11 @@ BeginBuild henüz çağrılmadığı için işlem tamamlanamıyor. + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. EndBuild çağrılmasına rağmen varolan teslimler henüz tamamlanmadığı için işlem tamamlanamıyor. diff --git a/src/Build/Resources/xlf/Strings.zh-Hans.xlf b/src/Build/Resources/xlf/Strings.zh-Hans.xlf index 14cfaec4c29..eae406090a1 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hans.xlf @@ -48,6 +48,11 @@ 无法完成该操作,因为尚未调用 BeginBuild。 + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. 无法完成该操作,因为已经调用 EndBuild,但现有提交尚未完成。 diff --git a/src/Build/Resources/xlf/Strings.zh-Hant.xlf b/src/Build/Resources/xlf/Strings.zh-Hant.xlf index b04b9efe5ac..4676f842b3d 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hant.xlf @@ -48,6 +48,11 @@ 無法完成作業,因為尚未呼叫 BeginBuild。 + + Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" at {2} + + The operation cannot be completed because EndBuild has already been called but existing submissions have not yet completed. 無法完成作業,因為已經呼叫 EndBuild,但尚未完成現有的提交。 From 6a09e84b56a9415b65a09240487d707e6d6a0d44 Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Thu, 21 Feb 2019 15:08:13 +0200 Subject: [PATCH 2/6] Update xlf files --- src/Build/Resources/xlf/Strings.cs.xlf | 5 +++++ src/Build/Resources/xlf/Strings.de.xlf | 5 +++++ src/Build/Resources/xlf/Strings.en.xlf | 5 +++++ src/Build/Resources/xlf/Strings.es.xlf | 5 +++++ src/Build/Resources/xlf/Strings.fr.xlf | 5 +++++ src/Build/Resources/xlf/Strings.it.xlf | 5 +++++ src/Build/Resources/xlf/Strings.ja.xlf | 5 +++++ src/Build/Resources/xlf/Strings.ko.xlf | 5 +++++ src/Build/Resources/xlf/Strings.pl.xlf | 5 +++++ src/Build/Resources/xlf/Strings.pt-BR.xlf | 5 +++++ src/Build/Resources/xlf/Strings.ru.xlf | 5 +++++ src/Build/Resources/xlf/Strings.tr.xlf | 5 +++++ src/Build/Resources/xlf/Strings.zh-Hans.xlf | 5 +++++ src/Build/Resources/xlf/Strings.zh-Hant.xlf | 5 +++++ 14 files changed, 70 insertions(+) diff --git a/src/Build/Resources/xlf/Strings.cs.xlf b/src/Build/Resources/xlf/Strings.cs.xlf index 9ca09527345..58f1bb80016 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}" at {2} + Property initial value: $({0})="{1}" at {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. diff --git a/src/Build/Resources/xlf/Strings.de.xlf b/src/Build/Resources/xlf/Strings.de.xlf index cdb6b09e0ed..79a8ae61b08 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}" at {2} + Property initial value: $({0})="{1}" at {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. diff --git a/src/Build/Resources/xlf/Strings.en.xlf b/src/Build/Resources/xlf/Strings.en.xlf index ab7dba885fe..cb251fbaa75 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.es.xlf b/src/Build/Resources/xlf/Strings.es.xlf index 9b160fe7b32..f0760d2e198 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.fr.xlf b/src/Build/Resources/xlf/Strings.fr.xlf index 8a359938e39..e46525e6759 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.it.xlf b/src/Build/Resources/xlf/Strings.it.xlf index b87c25e9bd7..855ce3c3744 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.ja.xlf b/src/Build/Resources/xlf/Strings.ja.xlf index b483249ce16..ee8cfbd0781 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}" at {2} + Property initial value: $({0})="{1}" at {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 項目として明示的に指定されていないことを意味します diff --git a/src/Build/Resources/xlf/Strings.ko.xlf b/src/Build/Resources/xlf/Strings.ko.xlf index 5e94815fe58..23c276bf37a 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}" at {2} + Property initial value: $({0})="{1}" at {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 항목으로 명시적으로 지정되지 않았음을 의미할 수 있습니다. diff --git a/src/Build/Resources/xlf/Strings.pl.xlf b/src/Build/Resources/xlf/Strings.pl.xlf index 75599e0a92d..708d879d190 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}" at {2} + Property initial value: $({0})="{1}" at {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}” diff --git a/src/Build/Resources/xlf/Strings.pt-BR.xlf b/src/Build/Resources/xlf/Strings.pt-BR.xlf index 4b7986e72f2..a26ff787147 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.ru.xlf b/src/Build/Resources/xlf/Strings.ru.xlf index 94d5c15672e..cba6a1e1596 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}" at {2} + Property initial value: $({0})="{1}" at {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}" diff --git a/src/Build/Resources/xlf/Strings.tr.xlf b/src/Build/Resources/xlf/Strings.tr.xlf index 7531de0ee21..9d6289050d0 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}" at {2} + Property initial value: $({0})="{1}" at {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 diff --git a/src/Build/Resources/xlf/Strings.zh-Hans.xlf b/src/Build/Resources/xlf/Strings.zh-Hans.xlf index 5e010b67874..e387a78a039 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}" at {2} + Property initial value: $({0})="{1}" at {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 项 diff --git a/src/Build/Resources/xlf/Strings.zh-Hant.xlf b/src/Build/Resources/xlf/Strings.zh-Hant.xlf index bbf99c95405..2f21373f6e2 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}" at {2} + Property initial value: $({0})="{1}" at {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 項目 From c65975a35c00848a86866e098e0b57991c19ce7d Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Thu, 21 Feb 2019 15:56:56 +0200 Subject: [PATCH 3/6] Adding Environment, Toolset and Global sources --- src/Build/Evaluation/Evaluator.cs | 19 ++++++++++++++++--- src/Build/Resources/Strings.resx | 4 ++-- src/Build/Resources/xlf/Strings.cs.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.de.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.en.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.es.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.fr.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.it.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.ja.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.ko.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.pl.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.pt-BR.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.ru.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.tr.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.zh-Hans.xlf | 8 ++++---- src/Build/Resources/xlf/Strings.zh-Hant.xlf | 8 ++++---- 16 files changed, 74 insertions(+), 61 deletions(-) diff --git a/src/Build/Evaluation/Evaluator.cs b/src/Build/Evaluation/Evaluator.cs index 6dc0e507f5c..3fe2944daae 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -604,7 +604,10 @@ 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; + + _evaluationLoggingContext = new EvaluationLoggingContext(loggingService, buildEventContext, projectFile); + 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"); @@ -634,9 +637,7 @@ 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(); @@ -1256,8 +1257,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, "Environment"); } return environmentPropertiesList; @@ -1272,8 +1275,10 @@ private ICollection

AddToolsetProperties() foreach (ProjectPropertyInstance toolsetProperty in _data.Toolset.Properties.Values) { + P predecessor = _data.GetProperty(toolsetProperty.Name); P property = _data.SetProperty(toolsetProperty.Name, ((IProperty)toolsetProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(property); + LogPropertyAssignment(predecessor, property, "Toolset"); } if (_data.SubToolsetVersion == null) @@ -1282,8 +1287,10 @@ 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 subToolsetVersionPredecessor = _data.GetProperty(Constants.VisualStudioVersionPropertyName); P subToolsetVersionProperty = _data.SetProperty(Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(subToolsetVersionProperty); + LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, "Toolset"); } } else @@ -1295,16 +1302,20 @@ private ICollection

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

AddGlobalProperties() foreach (ProjectPropertyInstance globalProperty in _data.GlobalPropertiesDictionary) { + P predecessor = _data.GetProperty(globalProperty.Name); P property = _data.SetProperty(globalProperty.Name, ((IProperty)globalProperty).EvaluatedValueEscaped, true /* IS global property */, false /* may NOT be a reserved name */); globalProperties.Add(property); + LogPropertyAssignment(predecessor, property, "Global"); } return globalProperties; diff --git a/src/Build/Resources/Strings.resx b/src/Build/Resources/Strings.resx index 6c9d3139f9c..2f8085ed7c3 100644 --- a/src/Build/Resources/Strings.resx +++ b/src/Build/Resources/Strings.resx @@ -741,7 +741,7 @@ {StrBegin="MSB4192: "} LOC: ".vcproj" should not be localized - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} Initial Properties: @@ -751,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 58f1bb80016..4806e262bf9 100644 --- a/src/Build/Resources/xlf/Strings.cs.xlf +++ b/src/Build/Resources/xlf/Strings.cs.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 79a8ae61b08..6e7d7ad9094 100644 --- a/src/Build/Resources/xlf/Strings.de.xlf +++ b/src/Build/Resources/xlf/Strings.de.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 cb251fbaa75..4177e60d9c4 100644 --- a/src/Build/Resources/xlf/Strings.en.xlf +++ b/src/Build/Resources/xlf/Strings.en.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -983,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 f0760d2e198..017d00b5f68 100644 --- a/src/Build/Resources/xlf/Strings.es.xlf +++ b/src/Build/Resources/xlf/Strings.es.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 e46525e6759..bd0f3f11bcc 100644 --- a/src/Build/Resources/xlf/Strings.fr.xlf +++ b/src/Build/Resources/xlf/Strings.fr.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2095,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 855ce3c3744..c58b4f8a0c1 100644 --- a/src/Build/Resources/xlf/Strings.it.xlf +++ b/src/Build/Resources/xlf/Strings.it.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 ee8cfbd0781..982ddb7e6b4 100644 --- a/src/Build/Resources/xlf/Strings.ja.xlf +++ b/src/Build/Resources/xlf/Strings.ja.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 23c276bf37a..d6175ea9947 100644 --- a/src/Build/Resources/xlf/Strings.ko.xlf +++ b/src/Build/Resources/xlf/Strings.ko.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 708d879d190..85d29116526 100644 --- a/src/Build/Resources/xlf/Strings.pl.xlf +++ b/src/Build/Resources/xlf/Strings.pl.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 a26ff787147..d86a1f32e14 100644 --- a/src/Build/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Build/Resources/xlf/Strings.pt-BR.xlf @@ -108,8 +108,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2095,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 cba6a1e1596..ef0c28dae94 100644 --- a/src/Build/Resources/xlf/Strings.ru.xlf +++ b/src/Build/Resources/xlf/Strings.ru.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 9d6289050d0..ef6433087ea 100644 --- a/src/Build/Resources/xlf/Strings.tr.xlf +++ b/src/Build/Resources/xlf/Strings.tr.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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 e387a78a039..2d17625dc45 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hans.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2095,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 2f21373f6e2..ec93c8829d1 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hant.xlf @@ -109,8 +109,8 @@ - Property initial value: $({0})="{1}" at {2} - Property initial value: $({0})="{1}" at {2} + Property initial value: $({0})="{1}" Source: {2} + Property initial value: $({0})="{1}" Source: {2} @@ -2096,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}) From 63204ff67ceae78c4e7f64be8e03787db8b616e5 Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Thu, 21 Feb 2019 16:45:42 +0200 Subject: [PATCH 4/6] Fix order --- src/Build/Evaluation/Evaluator.cs | 42 ++++++++++++++++++------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/Build/Evaluation/Evaluator.cs b/src/Build/Evaluation/Evaluator.cs index 3fe2944daae..b2ac4e4004f 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -604,14 +604,23 @@ private static ProjectTargetInstance ReadNewTargetElement(ProjectTargetElement t /// private void Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext) { + ErrorUtilities.VerifyThrow(_data.EvaluationId == BuildEventContext.InvalidEvaluationId, "There is no prior evaluation ID. The evaluator data needs to be reset at this point"); + string projectFile = String.IsNullOrEmpty(_projectRootElement.ProjectFileLocation.File) ? "(null)" : _projectRootElement.ProjectFileLocation.File; _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"); 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"); - _logProjectImportedEvents = Traits.Instance.EscapeHatches.LogProjectImports; ICollection

builtInProperties; @@ -634,16 +643,6 @@ private void Evaluate(ILoggingService loggingService, BuildEventContext buildEve } } -#if (!STANDALONEBUILD) - CodeMarkers.Instance.CodeMarker(CodeMarkerEvent.perfMSBuildProjectEvaluatePass0End); -#endif - - _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); @@ -1260,7 +1259,7 @@ private ICollection

AddEnvironmentProperties() 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, "Environment"); + LogPropertyAssignment(predecessor, property, PropertySources.Environment); } return environmentPropertiesList; @@ -1278,7 +1277,7 @@ private ICollection

AddToolsetProperties() P predecessor = _data.GetProperty(toolsetProperty.Name); P property = _data.SetProperty(toolsetProperty.Name, ((IProperty)toolsetProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(property); - LogPropertyAssignment(predecessor, property, "Toolset"); + LogPropertyAssignment(predecessor, property, PropertySources.Toolset); } if (_data.SubToolsetVersion == null) @@ -1290,7 +1289,7 @@ private ICollection

AddToolsetProperties() P subToolsetVersionPredecessor = _data.GetProperty(Constants.VisualStudioVersionPropertyName); P subToolsetVersionProperty = _data.SetProperty(Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(subToolsetVersionProperty); - LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, "Toolset"); + LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, PropertySources.Toolset); } } else @@ -1305,7 +1304,7 @@ private ICollection

AddToolsetProperties() P subToolsetVersionPredecessor = _data.GetProperty(Constants.SubToolsetVersionPropertyName); P subToolsetVersionProperty = _data.SetProperty(Constants.SubToolsetVersionPropertyName, _data.SubToolsetVersion, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(subToolsetVersionProperty); - LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, "Toolset"); + LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, PropertySources.Toolset); } if (_data.Toolset.SubToolsets.TryGetValue(_data.SubToolsetVersion, out subToolset)) @@ -1315,7 +1314,7 @@ private ICollection

AddToolsetProperties() P predecessor = _data.GetProperty(subToolsetProperty.Name); P property = _data.SetProperty(subToolsetProperty.Name, ((IProperty)subToolsetProperty).EvaluatedValueEscaped, false /* NOT global property */, false /* may NOT be a reserved name */); toolsetProperties.Add(property); - LogPropertyAssignment(predecessor, property, "Toolset"); + LogPropertyAssignment(predecessor, property, PropertySources.Toolset); } } } @@ -1340,7 +1339,7 @@ private ICollection

AddGlobalProperties() P predecessor = _data.GetProperty(globalProperty.Name); P property = _data.SetProperty(globalProperty.Name, ((IProperty)globalProperty).EvaluatedValueEscaped, true /* IS global property */, false /* may NOT be a reserved name */); globalProperties.Add(property); - LogPropertyAssignment(predecessor, property, "Global"); + LogPropertyAssignment(predecessor, property, PropertySources.Global); } return globalProperties; @@ -2707,6 +2706,13 @@ private void SetAllProjectsProperty() LogPropertyAssignment(oldValue, newValue, String.Empty); } } + + private static class PropertySources + { + public const string Environment = nameof(Environment); + public const string Toolset = nameof(Toolset); + public const string Global = nameof(Global); + } } ///

From 993b725715c0879a1b10a535ad78408fbc9be344 Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Tue, 26 Feb 2019 08:32:22 +0200 Subject: [PATCH 5/6] PR comments --- .../Evaluation/Evaluator_Tests.cs | 28 ++++++++++++++----- src/Build/Evaluation/Evaluator.cs | 16 +++++------ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs b/src/Build.UnitTests/Evaluation/Evaluator_Tests.cs index 01dc52b7b9b..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,23 +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 initial value"); - 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"); @@ -708,6 +721,7 @@ public void LogPropertyAssignments() { BuildParameters.WarnOnUninitializedProperty = originalValue; FileUtilities.DeleteWithoutTrailingBackslash(targetDirectory, true); + Environment.SetEnvironmentVariable("GlobalProp", oldEnvironmentValue); } } @@ -4389,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 b2ac4e4004f..8e1244c20fe 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -604,23 +604,23 @@ private static ProjectTargetInstance ReadNewTargetElement(ProjectTargetElement t /// private void Evaluate(ILoggingService loggingService, BuildEventContext buildEventContext) { - ErrorUtilities.VerifyThrow(_data.EvaluationId == BuildEventContext.InvalidEvaluationId, "There is no prior evaluation ID. The evaluator data needs to be reset at this point"); - string projectFile = String.IsNullOrEmpty(_projectRootElement.ProjectFileLocation.File) ? "(null)" : _projectRootElement.ProjectFileLocation.File; - _evaluationLoggingContext = new EvaluationLoggingContext(loggingService, buildEventContext, projectFile); - _data.EvaluationId = _evaluationLoggingContext.BuildEventContext.EvaluationId; + 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(); + _evaluationLoggingContext.LogProjectEvaluationStarted(); - ErrorUtilities.VerifyThrow(_data.EvaluationId != BuildEventContext.InvalidEvaluationId, "Evaluation should produce an evaluation ID"); + ErrorUtilities.VerifyThrow(_data.EvaluationId != BuildEventContext.InvalidEvaluationId, "Evaluation should produce an evaluation ID"); - using (_evaluationProfiler.TrackPass(EvaluationPass.TotalEvaluation)) - { _logProjectImportedEvents = Traits.Instance.EscapeHatches.LogProjectImports; ICollection

builtInProperties; From ad6efdade989b99c7e3bfe86e2bf3fefd3c2d66a Mon Sep 17 00:00:00 2001 From: Eli Arbel Date: Sun, 31 Mar 2019 13:31:23 +0300 Subject: [PATCH 6/6] Skip logging properties when OnlyLogCriticalEvents is true --- src/Build/Evaluation/Evaluator.cs | 61 +++++++++++++++++++------------ 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/src/Build/Evaluation/Evaluator.cs b/src/Build/Evaluation/Evaluator.cs index 8e1244c20fe..bcebaddfa19 100644 --- a/src/Build/Evaluation/Evaluator.cs +++ b/src/Build/Evaluation/Evaluator.cs @@ -1274,10 +1274,8 @@ private ICollection

AddToolsetProperties() foreach (ProjectPropertyInstance toolsetProperty in _data.Toolset.Properties.Values) { - P predecessor = _data.GetProperty(toolsetProperty.Name); - 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); - LogPropertyAssignment(predecessor, property, PropertySources.Toolset); } if (_data.SubToolsetVersion == null) @@ -1286,10 +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 subToolsetVersionPredecessor = _data.GetProperty(Constants.VisualStudioVersionPropertyName); - P subToolsetVersionProperty = _data.SetProperty(Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion, false /* NOT global property */, false /* may NOT be a reserved name */); - toolsetProperties.Add(subToolsetVersionProperty); - LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, PropertySources.Toolset); + P property = SetProperty(PropertySources.Toolset, Constants.VisualStudioVersionPropertyName, MSBuildConstants.CurrentVisualStudioVersion); + toolsetProperties.Add(property); } } else @@ -1301,20 +1297,16 @@ private ICollection

AddToolsetProperties() // set the property even if there is no matching sub-toolset. if (!_data.Properties.Contains(Constants.SubToolsetVersionPropertyName)) { - P subToolsetVersionPredecessor = _data.GetProperty(Constants.SubToolsetVersionPropertyName); - P subToolsetVersionProperty = _data.SetProperty(Constants.SubToolsetVersionPropertyName, _data.SubToolsetVersion, false /* NOT global property */, false /* may NOT be a reserved name */); - toolsetProperties.Add(subToolsetVersionProperty); - LogPropertyAssignment(subToolsetVersionPredecessor, subToolsetVersionProperty, PropertySources.Toolset); + 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 predecessor = _data.GetProperty(subToolsetProperty.Name); - 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); - LogPropertyAssignment(predecessor, property, PropertySources.Toolset); } } } @@ -1336,10 +1328,8 @@ private ICollection

AddGlobalProperties() foreach (ProjectPropertyInstance globalProperty in _data.GlobalPropertiesDictionary) { - P predecessor = _data.GetProperty(globalProperty.Name); - 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); - LogPropertyAssignment(predecessor, property, PropertySources.Global); } return globalProperties; @@ -1409,10 +1399,37 @@ private void EvaluatePropertyElement(ProjectPropertyElement propertyElement) P property = _data.SetProperty(propertyElement, evaluatedValue, predecessor); - LogPropertyAssignment(predecessor, property, propertyElement.Location.LocationString); + if (!_evaluationLoggingContext.LoggingService.OnlyLogCriticalEvents) + { + LogPropertyAssignment(predecessor, property, propertyElement.Location.LocationString); + } } } + 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; @@ -2695,15 +2712,13 @@ 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); - - LogPropertyAssignment(oldValue, newValue, String.Empty); + oldValue); } }