diff --git a/src/MSBuild/Resources/Strings.resx b/src/MSBuild/Resources/Strings.resx
index c6ddf821ce0..d0e6e832779 100644
--- a/src/MSBuild/Resources/Strings.resx
+++ b/src/MSBuild/Resources/Strings.resx
@@ -1184,6 +1184,13 @@
Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
+
+
MSBUILD : MSB1045: Stopping because of syntax errors in project file.
{StrBegin="MSBUILD : MSB1045: "}
diff --git a/src/MSBuild/Resources/xlf/Strings.cs.xlf b/src/MSBuild/Resources/xlf/Strings.cs.xlf
index 00e2e647459..784b9cb4c01 100644
--- a/src/MSBuild/Resources/xlf/Strings.cs.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.cs.xlf
@@ -64,6 +64,14 @@
uspělo s {0} upozorněním(i).
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.de.xlf b/src/MSBuild/Resources/xlf/Strings.de.xlf
index 74ac618d772..ac9fa526f6d 100644
--- a/src/MSBuild/Resources/xlf/Strings.de.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.de.xlf
@@ -64,6 +64,14 @@
erfolgreich mit {0} Warnung(en)
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.es.xlf b/src/MSBuild/Resources/xlf/Strings.es.xlf
index 7ec6b54f704..14157f5e8e7 100644
--- a/src/MSBuild/Resources/xlf/Strings.es.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.es.xlf
@@ -64,6 +64,14 @@
correcto con {0} advertencias
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.fr.xlf b/src/MSBuild/Resources/xlf/Strings.fr.xlf
index 68b3a15005b..755d762f8e5 100644
--- a/src/MSBuild/Resources/xlf/Strings.fr.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.fr.xlf
@@ -64,6 +64,14 @@
a réussi avec {0} avertissement(s)
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.it.xlf b/src/MSBuild/Resources/xlf/Strings.it.xlf
index 62edb772c61..2dda397dcea 100644
--- a/src/MSBuild/Resources/xlf/Strings.it.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.it.xlf
@@ -64,6 +64,14 @@
completato con {0} avvisi
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.ja.xlf b/src/MSBuild/Resources/xlf/Strings.ja.xlf
index 686748c8286..e46de3c07a5 100644
--- a/src/MSBuild/Resources/xlf/Strings.ja.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.ja.xlf
@@ -64,6 +64,14 @@
{0} 件の警告付きで成功しました
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.ko.xlf b/src/MSBuild/Resources/xlf/Strings.ko.xlf
index ddebf3ab442..cb7584f74a5 100644
--- a/src/MSBuild/Resources/xlf/Strings.ko.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.ko.xlf
@@ -64,6 +64,14 @@
{0} 경고와 함께 성공
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.pl.xlf b/src/MSBuild/Resources/xlf/Strings.pl.xlf
index fb1b6dec832..5a74d9cc878 100644
--- a/src/MSBuild/Resources/xlf/Strings.pl.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.pl.xlf
@@ -64,6 +64,14 @@
zakończono powodzeniem, z ostrzeżeniami w liczbie: {0}
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.pt-BR.xlf b/src/MSBuild/Resources/xlf/Strings.pt-BR.xlf
index 5b12a8d74c8..ba248b863e7 100644
--- a/src/MSBuild/Resources/xlf/Strings.pt-BR.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.pt-BR.xlf
@@ -64,6 +64,14 @@
êxito(s) com {0} aviso(s)
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.ru.xlf b/src/MSBuild/Resources/xlf/Strings.ru.xlf
index 27ad009b870..bbd0ded004e 100644
--- a/src/MSBuild/Resources/xlf/Strings.ru.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.ru.xlf
@@ -64,6 +64,14 @@
успешно выполнено с предупреждениями ({0})
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.tr.xlf b/src/MSBuild/Resources/xlf/Strings.tr.xlf
index 52a46bd9af1..81c6d8cfcf5 100644
--- a/src/MSBuild/Resources/xlf/Strings.tr.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.tr.xlf
@@ -64,6 +64,14 @@
{0} uyarıyla başarılı oldu
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.zh-Hans.xlf b/src/MSBuild/Resources/xlf/Strings.zh-Hans.xlf
index 2e64124c6d3..4537d1af02c 100644
--- a/src/MSBuild/Resources/xlf/Strings.zh-Hans.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.zh-Hans.xlf
@@ -64,6 +64,14 @@
成功,出现 {0} 警告
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/Resources/xlf/Strings.zh-Hant.xlf b/src/MSBuild/Resources/xlf/Strings.zh-Hant.xlf
index 6a70c9a06b1..630913f5cf1 100644
--- a/src/MSBuild/Resources/xlf/Strings.zh-Hant.xlf
+++ b/src/MSBuild/Resources/xlf/Strings.zh-Hant.xlf
@@ -64,6 +64,14 @@
成功但有 {0} 個警告
Part of Terminal Logger summary message: "Build {BuildResult_X} in {duration}s"
+
+
+
+
+ -> {0}
+
+ Info about project output - when known. Printed after ProjectFinished_NoTF or ProjectFinished_WithTF.
+ {0}: VT100 coded hyperlink to project output directory
diff --git a/src/MSBuild/TerminalLogger/Project.cs b/src/MSBuild/TerminalLogger/Project.cs
index 959bab12960..eabfd989c3e 100644
--- a/src/MSBuild/TerminalLogger/Project.cs
+++ b/src/MSBuild/TerminalLogger/Project.cs
@@ -51,6 +51,11 @@ public Project(string? targetFramework, StopwatchAbstraction? stopwatch)
///
public bool IsTestProject { get; set; }
+ ///
+ /// True when the project has run target with name "_CachePluginRunStart" defined in .
+ ///
+ public bool IsCachePluginProject { get; set; }
+
///
/// A lazily initialized list of build messages/warnings/errors raised during the build.
///
diff --git a/src/MSBuild/TerminalLogger/TerminalLogger.cs b/src/MSBuild/TerminalLogger/TerminalLogger.cs
index dd13fbe28aa..585dc5a62be 100644
--- a/src/MSBuild/TerminalLogger/TerminalLogger.cs
+++ b/src/MSBuild/TerminalLogger/TerminalLogger.cs
@@ -200,6 +200,11 @@ public ProjectContext(BuildEventContext context)
///
private DateTime? _testEndTime;
+ ///
+ /// Name of target that identifies the project cache plugin run has just started.
+ ///
+ private static string _cachePluginStartTarget = "_CachePluginRunStart";
+
///
/// Whether to show TaskCommandLineEventArgs high-priority messages.
///
@@ -630,7 +635,8 @@ private void ProjectFinished(object sender, ProjectFinishedEventArgs e)
}
}
- Terminal.WriteLine(ResourceUtilities.FormatResourceStringIgnoreCodeAndKeyword("ProjectFinished_OutputPath",
+ string resourceName = project.IsCachePluginProject ? "CachePluginProjectFinished_OutputPath" : "ProjectFinished_OutputPath";
+ Terminal.WriteLine(ResourceUtilities.FormatResourceStringIgnoreCodeAndKeyword(resourceName,
$"{AnsiCodes.LinkPrefix}{urlString}{AnsiCodes.LinkInfix}{outputPathSpan.ToString()}{AnsiCodes.LinkSuffix}"));
}
else
@@ -673,12 +679,16 @@ private void TargetStarted(object sender, TargetStartedEventArgs e)
string projectFile = Path.GetFileNameWithoutExtension(e.ProjectFile);
+ string targetName = e.TargetName;
+ if (targetName == _cachePluginStartTarget)
+ {
+ project.IsCachePluginProject = true;
+ }
- var isTestTarget = e.TargetName == _testStartTarget;
-
- var targetName = isTestTarget ? "Testing" : e.TargetName;
- if (isTestTarget)
+ if (targetName == _testStartTarget)
{
+ targetName = "Testing";
+
// Use the minimal start time, so if we run tests in parallel, we can calculate duration
// as this start time, minus time when tests finished.
_testStartTime = _testStartTime == null
@@ -931,7 +941,7 @@ private void ErrorRaised(object sender, BuildErrorEventArgs e)
}
}
- #endregion
+#endregion
#region Refresher thread implementation