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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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}".
+ {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).
@@ -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}".
+ {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).
@@ -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}".
- {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).
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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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: è 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).
@@ -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}".
+ {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).
@@ -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: è 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).
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: ターゲット "{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).
@@ -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}".
+ {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).
@@ -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: ターゲット "{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).
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: 대상 종속성 그래프에 "{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).
@@ -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}".
+ {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).
@@ -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: 대상 종속성 그래프에 "{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).
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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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: 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).
@@ -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}".
+ {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).
@@ -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: 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).
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: круговая зависимость между целями в графике зависимостей для цели "{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).
@@ -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}".
+ {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).
@@ -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: круговая зависимость между целями в графике зависимостей для цели "{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).
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: "{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).
@@ -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}".
+ {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).
@@ -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: "{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).
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: 涉及目标“{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).
@@ -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}".
+ {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).
@@ -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: 涉及目标“{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).
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: 涉及目標 "{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).
@@ -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}".
+ {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).
@@ -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: 涉及目標 "{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).