diff --git a/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs b/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs index 256f673586e..9d8db26b192 100644 --- a/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs @@ -1250,6 +1250,34 @@ public void TestCircularDependencyInCallTarget() Assert.False(success); } + /// + /// Tests a circular dependency target. + /// + [Fact] + public void TestCircularDependencyTarget() + { + string projectContents = @" + + + + + + + + + + + + "; + string errorMessage = @"There is a circular dependency in the target dependency graph involving target ""TargetA"". Since ""TargetC"" has ""DependsOn"" dependence on ""TargetA"", the circular is ""TargetA<-TargetC<-TargetB<-TargetA""."; + + StringReader reader = new StringReader(projectContents); + Project project = new Project(new XmlTextReader(reader), null, null); + project.Build(_mockLogger).ShouldBeFalse(); + _mockLogger.ErrorCount.ShouldBe(1); + _mockLogger.Errors[0].Message.ShouldBe(errorMessage); + } + /// /// Tests that cancel with no entries after building does not fail. /// diff --git a/src/Build/BackEnd/Components/RequestBuilder/TargetBuilder.cs b/src/Build/BackEnd/Components/RequestBuilder/TargetBuilder.cs index 834d87e57b2..d79147775b7 100644 --- a/src/Build/BackEnd/Components/RequestBuilder/TargetBuilder.cs +++ b/src/Build/BackEnd/Components/RequestBuilder/TargetBuilder.cs @@ -697,16 +697,9 @@ private async Task PushTargets(IList targets, TargetE // Does this target exist in our direct parent chain, if it is a before target (since these can cause circular dependency issues) if (buildReason == TargetBuiltReason.BeforeTargets || buildReason == TargetBuiltReason.DependsOn || buildReason == TargetBuiltReason.None) { - TargetEntry currentParent = parentTargetEntry; - while (currentParent != null) + if (HasCircularDependenceInTargets(parentTargetEntry, targetSpecification, out List targetDependenceChain)) { - if (String.Equals(currentParent.Name, targetSpecification.TargetName, StringComparison.OrdinalIgnoreCase)) - { - // We are already building this target on this request. That's a circular dependency. - ProjectErrorUtilities.ThrowInvalidProject(targetLocation, "CircularDependency", targetSpecification.TargetName); - } - - currentParent = currentParent.ParentEntry; + ProjectErrorUtilities.ThrowInvalidProject(targetLocation, "CircularDependencyInTargetGraph", targetSpecification.TargetName, parentTargetEntry.Name, buildReason, targetSpecification.TargetName, string.Join("<-", targetDependenceChain)); } } else @@ -812,5 +805,37 @@ private void ComputeAfterTargetFailures(string[] targetNames) } } } + + private bool HasCircularDependenceInTargets(TargetEntry parentTargetEntry, TargetSpecification targetSpecification, out List circularDependenceChain) + { + TargetEntry currentParent = parentTargetEntry; + circularDependenceChain = new List(); + bool hasCircularDependence = false; + + while (currentParent != null) + { + if (String.Equals(currentParent.Name, targetSpecification.TargetName, StringComparison.OrdinalIgnoreCase)) + { + // We are already building this target on this request. That's a circular dependency. + hasCircularDependence = true; + + // Cache the circular dependence chain only when circular dependency occurs. + currentParent = parentTargetEntry; + circularDependenceChain.Add(targetSpecification.TargetName); + while (!String.Equals(currentParent.Name, targetSpecification.TargetName, StringComparison.OrdinalIgnoreCase)) + { + circularDependenceChain.Add(currentParent.Name); + currentParent = currentParent.ParentEntry; + } + + circularDependenceChain.Add(currentParent.Name); + break; + } + + currentParent = currentParent.ParentEntry; + } + + return hasCircularDependence; + } } } diff --git a/src/Build/Resources/Strings.resx b/src/Build/Resources/Strings.resx index dca9e8d751f..aaf104c7040 100644 --- a/src/Build/Resources/Strings.resx +++ b/src/Build/Resources/Strings.resx @@ -269,6 +269,11 @@ {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets). + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). + MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". {StrBegin="MSB4086: "} diff --git a/src/Build/Resources/xlf/Strings.cs.xlf b/src/Build/Resources/xlf/Strings.cs.xlf index 0ba84491cde..af5343f913c 100644 --- a/src/Build/Resources/xlf/Strings.cs.xlf +++ b/src/Build/Resources/xlf/Strings.cs.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Existuje cyklická závislost v grafu závislosti cílů zahrnující cíl {0}. + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: Elementy <Choose> nemohou být vnořeny ve více než {0} úrovních. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Existuje cyklická závislost v grafu závislosti cílů zahrnující cíl {0}. - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.de.xlf b/src/Build/Resources/xlf/Strings.de.xlf index 180fd26527c..3f37e151f5f 100644 --- a/src/Build/Resources/xlf/Strings.de.xlf +++ b/src/Build/Resources/xlf/Strings.de.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Im Zielabhängigkeitsdiagramm besteht eine Ringabhängigkeit im Zusammenhang mit dem Ziel "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose>-Elemente können nicht mehr als {0} Ebenen tief geschachtelt werden. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Im Zielabhängigkeitsdiagramm besteht eine Ringabhängigkeit im Zusammenhang mit dem Ziel "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.en.xlf b/src/Build/Resources/xlf/Strings.en.xlf index 6bc335b4f99..62def2d02ff 100644 --- a/src/Build/Resources/xlf/Strings.en.xlf +++ b/src/Build/Resources/xlf/Strings.en.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> elements cannot be nested more than {0} levels deep. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.es.xlf b/src/Build/Resources/xlf/Strings.es.xlf index a709c0ee4b3..e5ae9cf06fa 100644 --- a/src/Build/Resources/xlf/Strings.es.xlf +++ b/src/Build/Resources/xlf/Strings.es.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Existe una dependencia circular en el gráfico de dependencias de destino en la que está involucrado el destino "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: Los elementos <Choose> no se pueden anidar más de {0} niveles de profundidad. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Existe una dependencia circular en el gráfico de dependencias de destino en la que está involucrado el destino "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.fr.xlf b/src/Build/Resources/xlf/Strings.fr.xlf index 7ff10c46252..43b1e5d1a62 100644 --- a/src/Build/Resources/xlf/Strings.fr.xlf +++ b/src/Build/Resources/xlf/Strings.fr.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Il existe une dépendance circulaire dans le graphique de dépendance cible qui implique la cible "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: Impossible d'imbriquer les éléments <Choose> de plus de {0} niveaux. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Il existe une dépendance circulaire dans le graphique de dépendance cible qui implique la cible "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.it.xlf b/src/Build/Resources/xlf/Strings.it.xlf index 04dd42ad112..b5b73d827fa 100644 --- a/src/Build/Resources/xlf/Strings.it.xlf +++ b/src/Build/Resources/xlf/Strings.it.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: è presente una dipendenza circolare nel grafico di dipendenze che usa la destinazione "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: il limite massimo di annidamento degli elementi <Choose> è di {0} livelli. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: è presente una dipendenza circolare nel grafico di dipendenze che usa la destinazione "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.ja.xlf b/src/Build/Resources/xlf/Strings.ja.xlf index 4094bff8c9c..9c1883c241d 100644 --- a/src/Build/Resources/xlf/Strings.ja.xlf +++ b/src/Build/Resources/xlf/Strings.ja.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: ターゲット "{0}" で、ターゲット依存グラフに循環する依存関係が存在します。 + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> 要素は {0} レベル以上では入れ子にできません。 {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: ターゲット "{0}" で、ターゲット依存グラフに循環する依存関係が存在します。 - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.ko.xlf b/src/Build/Resources/xlf/Strings.ko.xlf index 24d6b5e663d..5f8b1d179d3 100644 --- a/src/Build/Resources/xlf/Strings.ko.xlf +++ b/src/Build/Resources/xlf/Strings.ko.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: 대상 종속성 그래프에 "{0}" 대상과 관련된 순환 종속성이 있습니다. + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> 요소는 {0}단계 이하로만 중첩할 수 있습니다. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: 대상 종속성 그래프에 "{0}" 대상과 관련된 순환 종속성이 있습니다. - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.pl.xlf b/src/Build/Resources/xlf/Strings.pl.xlf index 3c70b202bfb..f645019bccd 100644 --- a/src/Build/Resources/xlf/Strings.pl.xlf +++ b/src/Build/Resources/xlf/Strings.pl.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Istnieje zależność cykliczna na wykresie zależności elementu docelowego, obejmująca element docelowy „{0}”. + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: Elementy <Choose> nie mogą być zagnieżdżone na poziomie głębszym niż {0}. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Istnieje zależność cykliczna na wykresie zależności elementu docelowego, obejmująca element docelowy „{0}”. - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.pt-BR.xlf b/src/Build/Resources/xlf/Strings.pt-BR.xlf index f08a2edb3de..0e7308fdf0e 100644 --- a/src/Build/Resources/xlf/Strings.pt-BR.xlf +++ b/src/Build/Resources/xlf/Strings.pt-BR.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: Há uma dependência circular no elemento gráfico de dependência circular de destino envolvendo o destino "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: Os elementos <Choose> não podem ser aninhados a mais de {0} níveis de profundidade. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: Há uma dependência circular no elemento gráfico de dependência circular de destino envolvendo o destino "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.ru.xlf b/src/Build/Resources/xlf/Strings.ru.xlf index f86dc394210..ad19ccbfbfe 100644 --- a/src/Build/Resources/xlf/Strings.ru.xlf +++ b/src/Build/Resources/xlf/Strings.ru.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: круговая зависимость между целями в графике зависимостей для цели "{0}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: уровень вложения элемента <Choose> не может превышать {0}. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: круговая зависимость между целями в графике зависимостей для цели "{0}". - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.tr.xlf b/src/Build/Resources/xlf/Strings.tr.xlf index 0b05d4f062a..ba72165a10f 100644 --- a/src/Build/Resources/xlf/Strings.tr.xlf +++ b/src/Build/Resources/xlf/Strings.tr.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: "{0}" hedefini içeren hedef bağımlılık grafiğinde döngüsel bağımlılık var. + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> öğeleri {0} düzeyden daha fazla iç içe geçirilemez. {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: "{0}" hedefini içeren hedef bağımlılık grafiğinde döngüsel bağımlılık var. - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.zh-Hans.xlf b/src/Build/Resources/xlf/Strings.zh-Hans.xlf index 8e6abc60fe5..3529f8664a8 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hans.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: 涉及目标“{0}”的目标依赖项关系图中存在循环依赖项。 + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> 元素的嵌套深度不能超过 {0} 层。 {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: 涉及目标“{0}”的目标依赖项关系图中存在循环依赖项。 - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}". diff --git a/src/Build/Resources/xlf/Strings.zh-Hant.xlf b/src/Build/Resources/xlf/Strings.zh-Hant.xlf index 148f027f4d5..eba950ac5c2 100644 --- a/src/Build/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/Build/Resources/xlf/Strings.zh-Hant.xlf @@ -75,6 +75,12 @@ Refer to https://github.com/dotnet/msbuild/tree/master/documentation/wiki/ChangeWaves.md to see what the current Change Waves are. + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". + MSB4006: 涉及目標 "{0}" 的目標相依性圖形中有循環相依性。 + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4251: There is a circular dependency involving the following projects: {0} @@ -83,6 +89,12 @@ {StrBegin="MSB4251:"} This message is shown when a graph build detects a target referenced in a circular manner -- a project cannot request a target to build itself (perhaps via a chain of other targets) + + + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". Since "{1}" has "{2}" dependence on "{3}", the circular is "{4}". + {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot + request a target to build itself (perhaps via a chain of other targets). MSB4257: The specified output result cache file is empty. @@ -419,12 +431,6 @@ MSB4114: <Choose> 項目無法放在深於 {0} 層以上的巢狀結構中。 {StrBegin="MSB4114: "}UE: This message appears if the project file contains unreasonably nested Choose elements. LOCALIZATION: Do not localize "Choose" as it is an XML element name. - - - MSB4006: There is a circular dependency in the target dependency graph involving target "{0}". - MSB4006: 涉及目標 "{0}" 的目標相依性圖形中有循環相依性。 - {StrBegin="MSB4006: "}UE: This message is shown when the build engine detects a target referenced in a circular manner -- a project cannot - request a target to build itself (perhaps via a chain of other targets). MSB4086: A numeric comparison was attempted on "{1}" that evaluates to "{2}" instead of a number, in condition "{0}".